Example #1
0
function familytree($arr, $id)
{
    static $list = array();
    foreach ($arr as $v) {
        if ($v['pid'] == $id) {
            familytree($arr, $v['pid']);
            $list[] = $v;
        }
    }
    return $list;
}
Example #2
0
function familytree($arr, $id){
	static $tree = array();

	foreach($arr as $v){
		if($v['id'] == $id){
			$tree[] = $v;

			//判断要不是找父目录
			if($v['parent'] !=0){
				familytree($arr ,$v['parent']);
			}

		}
	}
	return $tree;
}
Example #3
0
function familytree($arr, $id){
	 $tree = array();

	foreach($arr as $v){
		if($v['id'] == $id){
			$tree[] = $v;

			//判断要不是找父目录
			if($v['parent'] !=0){
				$tree = array_merge($tree, familytree($arr ,$v['parent']));
				//使用array_merge 替换静态变量
			}

		}
	}
	return $tree;
}
array('id'=>8,'name'=>'上地','parent'=>2)
);

//使用迭代的方法实习查找家谱树
//迭代,效率比递归高
function familytree($arr, $id){

	$tree = array();

	while($id !== 0){
		foreach($arr as $v){
			if($v['id'] == $id){
				$tree[] = $v;
				$id = $v['parent'];
				//echo '查找完成一次<br />';
				break; //跳出foreach当前循环继续
			}
		}
	}

	return $tree;
}

echo '<pre>';
print_r(familytree($area, 4));
echo '</pre>';

echo '<h3>程序运行完成!</h3>';
?>