标签:
<?php header("Content-Type:text/html;charset=utf-8"); $aarr = array( array(‘id‘=>1,‘name‘=>‘安徽‘,‘pid‘=>0), array(‘id‘=>2,‘name‘=>‘海淀‘,‘pid‘=>7), array(‘id‘=>3,‘name‘=>‘浣溪县‘,‘pid‘=>5), array(‘id‘=>4,‘name‘=>‘昌平‘,‘pid‘=>7), array(‘id‘=>5,‘name‘=>‘淮北‘,‘pid‘=>1), array(‘id‘=>6,‘name‘=>‘朝阳‘,‘pid‘=>7), array(‘id‘=>7,‘name‘=>‘北京‘,‘pid‘=>0), array(‘id‘=>8,‘name‘=>‘上地‘,‘pid‘=>2) ); function substree($arr,$pid=0){ $task = array($pid); //任务表 $tree = array(); //地区表 while(!empty($task)){ $flag = false; foreach($arr as $k=>$v){ if($v[‘pid‘] == $pid){ $tree[] = $v; array_push($task,$v[‘id‘]); //把最新地区id入任务栈 $pid = $v[‘id‘]; unset($arr[$k]); //把单元unset掉 $flag = true; //说明找到子栏目 } } if($flag == false){ array_pop($task); $pid = end($task); } //print_r($task); } return $tree; } echo "<pre>"; print_r(substree($aarr,0));
这是使用迭代法找子孙树的方法
标签:
原文地址:http://www.cnblogs.com/leigood/p/4908031.html