2017-12-18 17 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

はいはいちょうど –

+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

$ new [] = – splash58

+0

ああ、ああ、神様の祝福 –