PHP中的无限级分类
<?php /*燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it */ $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/>';//连续打印结果 } /*结果如下: |---------安徽 |------------------淮北 |---------------------------濉溪县 |---------北京 |------------------海淀 |---------------------------上地 |------------------昌平 |------------------朝阳 */