<?phpheader("content-type:text/html;charset=utf8");$array=[['id'=>1,'name'=>'广东省','pid'=>0],['id'=>2,'name'=>'福建省','pid'=>0],['id'=>3,'name'=>'广州市','pid'=>1],['id'=>4,'name'=>'天河区','pid'=>3],['id'=>5,'name'=>'天河公园','pid'=>4],['id'=>6,'name'=>'福州市','pid'=>2],['id'=>7,'name'=>'晋安区','pid'=>6],['id'=>8,'name'=>'五一广场','pid'=>7],['id'=>9,'name'=>'上海市','pid'=>0],['id'=>10,'name'=>'黄浦区','pid'=>9],['id'=>11,'name'=>'外滩','pid'=>10],['id'=>12,'name'=>'佛山市','pid'=>1]];// 引用function tree ($data,$pid=0){$item=[];$tree=[];foreach($dataas$value){$item[$value['id']]=$value;}foreach($itemas$key=>$value){if($value['pid']!=$pid){$item[$value['pid']]['sub'][]=&$item[$key];}else{$tree[]=&$item[$key];}}return$tree;}print_r(tree($array,0));echo"<br>";// 递归functioncategory($data,$pid=0){$tree=[];foreach($dataas$value){if($value['pid']==$pid){$value['sub']=category($data,$value['id']);if($value['sub']==null){unset($value['sub']);}$tree[]=$value;}}return$tree;}print_r(category($array,0));