2011-11-22 66 views
0

树我有一个数组满了物品,如这些:创建一个从子节点

array(
    array(
     'id' => 1, 
     'name' => 'parent 1', 
     'parent_id' => null 
    ), 
    array(
     'id' => 2, 
     'name' => 'child of parent 1', 
     'parent_id' => 1 
    ), 
    array(
     'id' => 3, 
     'name' => 'grand child of parent 1', 
     'parent_id' => 2 
    ), 
    array(
     'id' => 4, 
     'name' => 'parent 2', 
     'parent_id' => null 
    ), 
    array(
     'id' => 5, 
     'name' => 'child of parent 2', 
     'parent_id' => 4 
    ), 
); 

我的问题是:如何建立一个树一个已知的孩子?例如,如果我知道id是3,我需要获得一系列物品,包括ID和1,2和3.

谢谢。

回答

0

也许某事像这样:

function build($tab, $id) 
{ 
    $res = array(); 
    $node = $tab[$id]; 
    $i = 0; 

    do 
    { 
     $res[$i] = node; 
     $node = $tab[$node['parent_id']]; 
     $i++; 
    } while($node != null); 

    return $res; 

} 
相关问题