無限級分類之循環家譜樹

<?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;
			}
		}
	
	}


?>
相關文章
相關標籤/搜索