array('t1',0), 2=>array('t2',0), 3=>array('t3',0), 4=>array('t4',1), 5=>array('t5',2), 6=>array('t6',3), 7=>array('t7',1), 8=>array('t8',2),);$stack=array();foreach($arr as $key=>$val){ if($val[1]==0){ array_push($stack,array($key,0)); }}$font='';$pa=array();//临时存储数组 标记是否已经输出过一次$ra=array();//标志是否被查找while(count($stack)>0){ $t=array_pop($stack); $is=false; if(!is_array($t[0].$pa)){ $dra="|"; for($j=0;$j<=$t[1];$j++){ $dra.="-"; } $font.=$dra.$arr[$t[0]][0]."\r\n"; array_push($pa,$t[0]); } for($i=1;$i<=8;$i++){ if($arr[$i][1]==$t[0] && !is_array($i,$ra)){ array_push($stack,$t); array_push($stack,array($i,++$t[1])); $is=true; break; } } if($is==false){ array_push($ra,$t[0]); }}echo $font;