2014-05-09 49 views
0

我堅持用樹生成算法:PHP產生的特定深度的樹和規則

  • 有沒有父子參數,可以只啓動節點值
  • 每個節點都有2個孩子(除最後孩子)

陣列例如:

$start = 1; 
$depth = 3; 

$s = array(

    'name'  => 1,     // taken from $start 
    'children' => array(

     array(
      'name' => 2, 
      'children => array(
       array('name' => 3), /* No children for last node $depth */ 
       array('name' => 3), /* No children for last node $depth */ 
      ) 
     ), 

     array(
      'name' => 2, 
      'children => array(
       // same as above 
      ) 
     ), 

    ) 
); 

在這一點上,我想出了一個非常難看的福並會感謝任何幫助或建議,以建立更好的算法。

回答

1

這應該是有幫助的

function generateTree($depth,$level=0){ 
$result=array(); 
if($depth==$level){ 
$result=array('name' => $level); 
} 
else{ 
$result=array('name'=>$level,'children'=>array(generateTree($depth,$level+1),generateTree($depth,$level+1))); 
} 
return $result; 
} 

print_r(generateTree(3,1));