2015-05-13 86 views
2

我有树的解决方案,但我想它转换成数组...转换树结构到PHP数组

function generatePageTree($datas , $parent = 0) 
$tree = '<ul>'; 
for($i=0, $ni=count($datas); $i < $ni; $i++){ 
    if($datas[$i]['parent_id'] == $parent){ 
     $tree .= '<li>'; 
     $tree .= $datas[$i]['ledger_account_name']; 
     $tree .= $this->generatePageTree($datas, $datas[$i]['ledger_account_id']); 
     $tree .= '</li>'; 
    } 
} 
    $tree .= '</ul>'; 
return $tree; 
} 

我想在阵列的形式,这种树状结构..已经可以做任何一个请帮助.... 阵列格式............

array(
     id=>100, parentid=>0, name=>'a', children=>array(
     id=>101, parentid=>100, name=>'a', children=>array(
      id=>102, parentid=>101, name=>'a', 
      id=>103, parentid=>101, name=>'a', 
     ) 
    ) 
    ) 
+0

究竟什么是你想要的阵列格式? – Sean

+0

嘿谢谢你的帮助,但我找到了答案... –

+0

请让我知道答案。 –

回答

2
function buildTree(array $elements, $parentId = 0) { 
      $branch = array(); 

      foreach ($elements as $element) { 

       if ($element['parent_id'] == $parentId) { 
        $children = $this->buildTree($elements, $element['ledger_account_id']); 

        if ($children) { 

         $element['children'] = $children; 

        } 
        $branch[$element['ledger_account_id']] = $element; 
       } 
      } 

      return $branch; 
     }