$items1 = array( array('id' => 1, 'pid' => 0, 'name' => '一级11','level'=>1 ), array('id' => 11, 'pid' => 0, 'name' => '一级12','level'=>1 ), array('id' => 2, 'pid' => 1, 'name' => '二级21','level'=>2 ), array('id' => 10, 'pid' => 11, 'name' => '二级22','level'=>2 ), array('id' => 3, 'pid' => 1, 'name' => '二级23','level'=>2 ), array('id' => 12, 'pid' => 11, 'name' => '二级24','level'=>2 ), array('id' => 9, 'pid' => 1, 'name' => '二级25','level'=>2 ), array('id' => 14, 'pid' => 1, 'name' => '二级26','level'=>2 ), array('id' => 4, 'pid' => 9, 'name' => '三级31','level'=>3 ), array('id' => 6, 'pid' => 9, 'name' => '三级32','level'=>3 ), array('id' => 7, 'pid' => 4, 'name' => '四级41','level'=>4 ), array('id' => 8, 'pid' => 4, 'name' => '四级42','level'=>4 ), array('id' => 5, 'pid' => 4, 'name' => '四级43','level'=>4 ), array('id' => 13, 'pid' => 4, 'name' => '四级44','level'=>4 ), array('id' => 15, 'pid' => 8, 'name' => '五级51','level'=>5 ), array('id' => 16, 'pid' => 8, 'name' => '五级52','level'=>5 ), array('id' => 17, 'pid' => 8, 'name' => '五级53','level'=>5 ), array('id' => 18, 'pid' => 16, 'name' => '六级64','level'=>6 ), ); foreach ($items1 as $item) { $temp[$item['id']]=$item; } foreach($items1 as $item) { if(isset($temp[$item['pid']])) { $temp[$item['pid']]['son'][]=&$temp[$item['id']]; }else { $tree[]=&$temp[$item['id']]; } } function echotree($tree){ foreach($tree as $data) { for($i=1;$i<$data['level'];$i++) { echo "-"; } echo $data['name']; echo "<br/>"; if($data['son']) { $level+=1; echotree($data['son']); } } } echotree($tree);