2017-12-18 266 views
-2

我想知道如何通過標識符獲取層次結構。多維數組層次結構

這是一個例子:

$inputArray = array(
     array(
      "text" => "Dir1", 
      "parent_id" => "", 
      "id" => "1", 
      "filesize" => "109" 
    ),array(
     "text" => "dir2", 
     "parent_id" => "", 
     "id" => "2", 
     "filesize" => "88", 
     "children" => array(
       "text" => "Dir3", 
       "parent_id" => "2", 
       "id" => "3", 
       "filesize" => "", 
       "children" => array(
        "text" => "dir4", 
        "parent_id" => "3", 
        "id" => "4", 
        "filesize" => "", 
        "children" => array(
         "text" => "dir5", 
         "parent_id" => "4", 
         "id" => "4", 
         "filesize" => "" 
        ) 
       ) 
     ) 
    )); 

尋找這個例子:

dir3/dir4/dir5 
+0

你想在'children'數組上使用這樣的輸出嗎? – splash58

+0

yes yes –

+0

get_tree(5); //我得到dir3/dir4/dir5 –

回答

0
function getText($array) { 
    $save[] = $array['text']; 
    if (isset($array['children'])) { 
    $save = array_merge($save, getText($array['children'])); 
    } 
    return $save; 
} 

foreach($inputArray as $x) { 
    echo implode('/', getText($x)) . "\n"; 
} 

結果

Dir1 
dir2/Dir3/dir4/dir5 

demo

+0

是的正確非常感謝你,只是我想問你。我怎麼能把Dir1作爲一個元素放在一個新的數組中,並且dir2/Dir3/dir4/dir5 例如'$ new_array = array('Dir1','dir2/Dir3/dir4/dir5');' –

+0

用echo替換echo $ new [] = – splash58

+0

非常感謝你這是上帝保佑okey –