php 无限极分类查找家谱树

1:迭代的效率要比递归高,代码页相对少些,所以查找家谱树推荐用迭代

 

$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 gettree($arr,$id){

	$tree  = array();
	while($id !=0){
	foreach($arr as $v){

			if($v['id'] == $id){

				$tree[] = $v;       //把找到的子数组放进空的tree数组里

				$id = $v['parent'];  //while循环时用到的。

				break;
			}

	    }
	}
	return $tree;

}
print_r(gettree($area,8));

  

posted @ 2014-10-16 12:16  王孙将归  阅读(322)  评论(0编辑  收藏  举报