如何组合多维数组

时间:2017-11-21 10:26:13

标签: php arrays multidimensional-array

如何组合多维数组

<?php

$array[0] = [1=>[2=>[4=>[20=>""]]]];
$array[1] = [1=>[2=>[5=>[21=>""]]]];
$array[2] = [1=>[2=>[5=>[22=>""]]]];
$array[3] = [1=>[2=>[5=>[23=>""]]]];
$array[4] = [1=>[2=>[5=>[25=>""]]]];
$array[5] = [3=>[9=>[12=>[33=>""]]]];
$array[6] = [3=>[9=>[12=>[34=>""]]]];
$array[7] = [3=>[9=>[12=>[38=>""]]]];

?>

如何转换为:

$arrays = [1=>[2=>[4=>[20=>""],5=>[21=>"",22=>"",25=>""]]],[3=> [9 => [12 => [33 => "",38 => ""]]]]];

我尝试使用array_merge:

$arrays = [];

    foreach ($array as $val)
    {
        $arrays = array_merge($arrays,$val);

    }

但结果总是第一个维度由该自我增加

我已经尝试过一些func(比如$ arrays = $ arrays + $ val,array_push等 )自2个月前以来我认为使用array_merge很好,但问题是由自己增加,所以我仍然没有找到解决方案,我也搜索谷歌仍然没有找到这个。

1 个答案:

答案 0 :(得分:2)

使用其中一个内置数组函数array_merge_recursivearray_replace_recursive。代码如下:

$arrays = [];

foreach ($array as $val)
{
    $arrays = array_replace_recursive($arrays,$val);

}

http://php.net/manual/en/function.array-merge-recursive.php