无限级分类之循环家谱树

<?php

/*
 * 家谱树应用  首页>>手机类型>>诺基亚
 */

$area=array(
		array('id'=>1,'name'=>'中国','parent'=>0),
		array('id'=>2,'name'=>'广东','parent'=>1),
		array('id'=>3,'name'=>'深圳','parent'=>2),
		array('id'=>4,'name'=>'湖南','parent'=>1),
		array('id'=>5,'name'=>'长沙','parent'=>4)
		
);


function familytree($arr,$id) {
	 //static $tree=array();
	  $tree=array();
	foreach ($arr as $v) {
		if ($v['id']==$id) {
			 
			if ($v['parent']>0) {
			  $tree[]=array_merge(familytree($arr, $v['parent']));
			 }
			 $tree[]=$v;
		}
	}
	return $tree;
}
print_r(familytree($area,6));

/*
 * 用迭代法找家谱树
 */
function family($arr,$id ){
	  $tree=array();
	while ($id!==0) {
		foreach ($arr as $v) {
			if ($v['id']==$id) {
				$tree[]=$v;
			  $id=$v['parent'];
			}
			  break;
			}
		}
	
	}


?>

你可能感兴趣的:(无限级分类之循环家谱树)