Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在保留键的同时合并多维数组?_Php_Arrays_Array Merge - Fatal编程技术网

Php 如何在保留键的同时合并多维数组?

Php 如何在保留键的同时合并多维数组?,php,arrays,array-merge,Php,Arrays,Array Merge,这些数组有什么方法吗 $array1 = array( '21-24' => array( '1' => array("...") ) ); $array2 = array( '21-24' => array( '7' => array("..."), ) ); $array3 = array( '25 and over' => array( '1' => array(

这些数组有什么方法吗

$array1 = array(
    '21-24' => array(
        '1' => array("...")
    )
);

$array2 = array(
    '21-24' => array(
        '7' => array("..."),
    )
);

$array3 = array(
    '25 and over' => array(
        '1' => array("...")
    )
);

$array4 = array(
    '25 and over' => array(
        '7' => array("...")
    )
);
要合并哪些结果到下面的数组中

array(
    '21-24' => array(
        '1' => array("..."),
        '7' => array("...")
    ),      
    '25 and over' => array(
        '1' => array("..."),
        '7' => array("...")
    )
);
注意

  • 我无法控制阵列结构,因此任何需要更改结构的解决方案都不是我想要的
  • 我主要感兴趣的是保留前两个级别的关键点,但更健壮的解决方案是可以处理所有级别的关键点
我试过这样用

$x = array_merge_recursive($array1, $array2);
$x = array_merge_recursive($x, $array3);
$x = array_merge_recursive($x, $array4);
但结果是

 array(
    '21-24' => array(
        '1' => array("..."),
        '2' => array("...")
    ),      
    '25 and over' => array(
        '1' => array("..."),
        '2' => array("...")
    )
);
你考虑过吗


你只有4个数组吗?@tessmore问题中已经有解释说我试过了,但没有达到预期效果expected@HamZaDzCyberDeV我正在处理的实际代码各不相同。但不变的是第一级和第二级关键点。当然,最好的解决方案根本不应该关心这一点。@Jack是的,array\u replace\u recursive()做了我想做的。@Jack的工作非常完美:-)
print_r(array_replace_recursive($array1, $array2, $array3, $array4));