Php 如何将多维数组中的数组推入另一个多维数组中的特定子数组

Php 如何将多维数组中的数组推入另一个多维数组中的特定子数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有两个阵列: $array1 = array(299945 => [13654 => [9917 => [0 => '0', 9 => '9', 33 => '33']]]); $array2 = array(13654 => [9940 => [0 => '0']]); 其中每一个都是从创建这些结果的不同数据库查询中创建的 我知道我想从$array2中取出'9940'键并将其推入$array1中,这样它将成为13654数组中的另一个元素

我有两个阵列:

$array1 = array(299945 => [13654 => [9917 => [0 => '0', 9 => '9', 33 => '33']]]);
$array2 = array(13654 => [9940 => [0 => '0']]);
其中每一个都是从创建这些结果的不同数据库查询中创建的

我知道我想从
$array2
中取出'9940'键并将其推入
$array1
中,这样它将成为
13654
数组中的另一个元素。因此,最终结果将是:

$array1=array(299945=>[13654=>[9917=>[0=>'0',9=>'9',33=>'33'],9940=>[0=>'0']])


我怎样才能做到这一点呢?

有几种方法可以做到这一点,这里有一种方法使用了
array\u replace\u recursive()

如果你只是想要一份工作,那就没有太多了:

$array1+=$array2


您可能应该考虑使用重复键和类似问题的更复杂的情况,因此我通常认为这是将两个数组添加到一起的更好工具。

您在第一个数组中查找的键是否总是位于第二个级别(深度)?还是要在数组中递归搜索键9940?因此,键也可能位于第一个数组中更深的其他子数组中。尽管此解决方案正确地使用了array\u merge\u recursive,但如果您更改键,即使使用这样的数组,它也不会起作用structure@splash58更改哪些键?初始键
299945
。如果OP没有规定给定阵列的模式,这是我能给出的最好答案。@e_I_pi你是舒尔吗?:)使用
[key($array1)=>$array2]
,至少我认为我们会在某个时候看到新的问题,或者OP会在这里再次询问您,因为array1的结构为[12=>[13=>],[14=>]]似乎非常可能
<?php

header('Content-type: text/plain');

$array1 = array(299945 => [13654 => [9917 => [0 => '0', 9 => '9', 33 => '33']]]);
$array2 = array(13654 => [9940 => [0 => '0']]);

$array3 = array_replace_recursive($array1, [key($array1) => $array2]);

print_r($array3);
Array
(
    [299945] => Array
        (
            [13654] => Array
                (
                    [9917] => Array
                        (
                            [0] => 0
                            [9] => 9
                            [33] => 33
                        )

                    [9940] => Array
                        (
                            [0] => 0
                        )

                )

        )

)