将嵌套数组元素的集合合并到一个数组中


Merge collection of nested array elements into one array

我正在尝试将嵌套数组元素的集合合并为一个数组。

数组:

crop_data = [
                [
                    ["crop" => "soy"]   // 0
                ],
                [
                    ["crop" => "rye"]   // 1
                ],
                [
                    ["crop" => "tree"]  // 2
                ]
            ],
            [
                [
                    ["crop" => "salt"]  // 0
                ],
                [
                    ["crop" => "farm"]  // 1
                ]
            ],
            [
                [
                    ["year" => "2015"]
                ]
            ]

我试过以下方法…

$crop_data = array();   // new array
foreach($crop_list as $value) {
    $crop_data = array_merge($value, $crop_list));
}

我想把三个数组的内部元素合并成一个数组。关于如何做到这一点,有什么建议吗?

可以使用array_walk_recursive。

$merged = array();
array_walk_recursive($crop_data, function($v, $k) use (&$merged) {
    $merged[$k][] = $v;
});