2014-03-07 165 views
0

我設法得到父母子女,但是我很難得到小孩的子女小孩的父母子女以及子女

這是頁面的樣子。

[0] => array(1) { 
    ["PARENT"] => string(0) "" 
    } 
    [1] => array(2) { 
    ["PARENT"] => string(10) " Hang TED" 
    ["CHILD"] => array(2) { 
     [0] => array(1) { 
     ["CHILD"] => string(13) "110379 110626" 
     } 
     [1] => array(1) { 
     ["CHILD"] => string(13) "110417 110626" 
     } 
    } 
    } 
+0

請分享您的$ pages數組的結構。我想你會需要使用遞歸函數做n級解析 – satdev86

+0

@ satdev86我更新了我的問題。我不知道如何得到孩子的孩子的 – Defyleiti

+0

你的問題需要更多的信息,你曾經使用過一個$頁面的對象,不知道它是如何架設的。您正在使用數組鍵作爲parent_page_id,但您的模型數組數據不與您的代碼內聯。請重新表述您的問題。然而,我可以展示一些功能的方式來完成它 – satdev86

回答

1
<?php 

$pages = array('0'=>array(
       'parent'=> 'parent0', 
       'child' => array('name' => 'test', 'children' => array(
         array('child' => 'child1'), 
         array('child' => 'child2')      
        )) 
       ), 
       '1' => array('parent'=>'parent1') 
       ); 


$arr_pages = getDetails($pages); 

function getDetails(array $pages) { 
    $result = array(); 
    if(count($pages)) { 
     foreach($pages as $key => $value) { 
      $cnames=array(); 
      if($value['parent']) $result[$key]['parentname'] = $value['parent']; 
      if($value['child']['name']) $result[$key]['childname'] = $value['child']['name']; 
      if(is_array($value['child']['children'])) { 
        foreach($value['child']['children'] as $cval) $cnames[] = $cval['child']; 
        $result[$key]['childrenofchild'] = implode(',',$cnames); 
      } 

     } 
    } 
    return $result; 
} 

我做到了,在考慮有陣列的深度將不超過3個級別的一個非常基本的方式。你會期待的O/P作爲

Array 
(
    [0] => Array 
     (
      [parentname] => parent0 
      [childname] => test 
      [childrenofchild] => child1,child2 
     ) 

    [1] => Array 
     (
      [parentname] => parent1 
     ) 

) 
+0

謝謝你,我會試試這個。我非常感謝你的幫助。感謝您的幫助:)。 – Defyleiti

+0

your're welcome:) – satdev86