[英]Collect all values in a multidimensional array with a specific key
我有一個這樣的數組:
[
[
'id' => 13,
'children' => [
['id' => 14, 'parent_id' => 13],
['id' => 15, 'parent_id' => 13],
]
]
]
如何從該數組中獲取所有 [id] 值並將它們存儲在一個平面數組中,如下所示:
[13, 14, 15]
$a
是您的原始數組。
array_merge(array($a['id']),
array_map(function($child) { return $child['id']; }, $a['children']));
如果您使用遞歸方法,那么您的數組有多長或多深都無關緊要。 array_walk_recursive()
將訪問數組中的每個“葉節點”; 如果該葉節點的鍵是id
,則將該值推送到結果數組中。
代碼:(演示)
$result = [];
array_walk_recursive(
$array,
function($v, $k) use(&$result) {
if ($k === 'id') {
$result[] = $v;
}
}
);
var_export($result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.