<?php $d = array( array( name=>'公告','id'=>1,'pid'=>0), array( name=>'文章','id'=>2,'pid'=> 0), array( name=>'文章1','id'=>3, 'pid'=>2), array( name=>'文章2','id'=>4,'pid'=>2), array( name=>'文章1评论1','id'=>5,'pid'=>3), array( name=>'文章2评论','id'=>6,'pid'=>4), array( name=>'文章1评论2','id'=>7,'pid'=>3), array( name=>'文章1评论1评论','id'=>8,'pid'=>5), ); function tree2(&$arr,$pid=0,$num=0){ foreach($arr as $k=>$v){ if($v['pid'] == $pid){ echo str_repeat(' ',$num).$v['name'].'<br/>'; unset($arr[$k]); tree2($arr,$v['id'],$num+2); } } } tree2($d); ?>