递归引用




$items = array(
    1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
    3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
    4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'),
    5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'),
    2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
);

function tree($data,$pid=0){
//    $data=array_column($data,null,'id');
    $arr=[];
     foreach ($data as $k => $v){
         $v['pid']==$pid ? $arr[]=&$data[$v['id']]:$data[$v['pid']]['child'][]=&$data[$v['id']] ;
     }
    return $arr;
}


echo '
';
print_r(tree($items));
echo '
'
;

递归引用_第1张图片

你可能感兴趣的:(php)