<?php
$area = array(
array('id'=>1,'name'=>'安徽','parent'=>0),
array('id'=>2,'name'=>'海淀','parent'=>7),
array('id'=>3,'name'=>'濉溪县','parent'=>5),
array('id'=>4,'name'=>'昌平','parent'=>7),
array('id'=>5,'name'=>'淮北','parent'=>1),
array('id'=>6,'name'=>'朝阳','parent'=>7),
array('id'=>7,'name'=>'北京','parent'=>0),
array('id'=>8,'name'=>'上地','parent'=>2)
);
function tree($arr,$id,$level=1){
static $subtree=array();//定义一个静态变量,用于存放取回来的值
foreach($arr as $val){//循环数组
if($val['parent']==$id){//判断父的id与传入的id相匹配
$val['level']=$level;//定义一个等级
$subtree[]=$val;//将取到的值追加到数组里
tree($arr,$val['id'],$lev=$level+1);//递归调用tree函数
}
}
return $subtree;//返回结果
}
$res=tree($area,0);
foreach($res as $key=>$val){
echo '|'.str_repeat("---",($val['level']*3)).$val['name'].'<br/>';//连续打印结果
}
/*结果如下:
|---------安徽
|------------------淮北
|---------------------------濉溪县
|---------北京
|------------------海淀
|---------------------------上地
|------------------昌平
|------------------朝阳
*/
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15113.html