簡體   English   中英

使用特定鍵收集多維數組中的所有值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM