$item = array( array('id' => 1, 'fid' => 0, 'name' => '一级11','level'=>1 ), array('id' => 11, 'fid' => 0, 'name' => '一级12','level'=>1 ), array('id' => 2, 'fid' => 1, 'name' => '二级21','level'=>2 ), array('id' => 10, 'fid' => 11, 'name' => '二级22','level'=>2 ), array('id' => 3, 'fid' => 1, 'name' => '二级23','level'=>2 ), array('id' => 12, 'fid' => 11, 'name' => '二级24','level'=>2 ), array('id' => 9, 'fid' => 1, 'name' => '二级25','level'=>2 ), array('id' => 14, 'fid' => 1, 'name' => '二级26','level'=>2 ), array('id' => 4, 'fid' => 9, 'name' => '三级31','level'=>3 ), array('id' => 6, 'fid' => 9, 'name' => '三级32','level'=>3 ), array('id' => 7, 'fid' => 4, 'name' => '四级41','level'=>4 ), array('id' => 8, 'fid' => 4, 'name' => '四级42','level'=>4 ), array('id' => 5, 'fid' => 4, 'name' => '四级43','level'=>4 ), array('id' => 13, 'fid' => 4, 'name' => '四级44','level'=>4 ), array('id' => 15, 'fid' => 8, 'name' => '五级51','level'=>5 ), array('id' => 16, 'fid' => 8, 'name' => '五级52','level'=>5 ), array('id' => 17, 'fid' => 8, 'name' => '五级53','level'=>5 ), array('id' => 18, 'fid' => 16, 'name' => '六级64','level'=>6 ), ); foreach($item as $_item) { $tem[$_item['id']]=$_item; } foreach($item as $_item) { if($tem[$_item['fid']]==0) { $tree[]=&$tem[$_item['id']]; }else { $tem[$_item['fid']]['son'][]=&$tem[$_item['id']]; } } print_r($tree);