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