2017-02-27 116 views
1

我有一個奇怪的數組。我得到一些有孩子的物體,然後我有一些物體是孩子們的身份。通過數組重新循環(PHP)

array { 
"1": { 
    "children": [ 
    10, 
    11, 

    ], 
    "parent_id": null, 
    }   
} 

"2": { 
    "children": [ 
     12, 
     13, 
    ] 
    "parent_id": null, 
} 

"10": { 
     "name": Tom, 
     "parentid": 1, 
    } 

"11": { 
      "name": Peter, 
      "parentid": 1, 
    } 

} 

我想先列出對象,如果他們有孩子通過foreach。

foreach ($array as $key) { 
    if (parent_id === null){ 
     echo id; 
    } 
} 

所以我得到的,看起來像這樣的列表:

1 
2 

(沒有10和11)

但現在我想要做的是列表下的孩子的名字他們父母,所以它結束了這樣的事情:

1 
    Tom 
    Peter 
2 

我有一個數組的兒童id,我只是不知道如何重新循環遍歷原始數組的名稱。

+0

數組是否總是隻有一層繼承?即父/子?還是會有祖父母/父母/孩子或曾祖父母/祖父母/父母/孩子等? – fubar

+0

是的,只有一個級別。 –

回答

1

會假設你的數組是一個層次深,一個parent_id == null意味着家長和有應該顯示沒有可能孤立要素:

foreach($array as $key => $value) { 
    if ($value['parent_id'] === null) { 
     echo $key; 
     // we got a parent, iterate through it's children 
     foreach($value['children'] as $childId) { 
      echo $array[$childId]['name']; 
     } 
    } 
} 

可能要添加一些empty檢查,只是爲了確保所有鍵存在於數組中。