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

时间:2018-01-18 08:42:20

标签: php arrays multidimensional-array

我有两个数组:

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

每个都是从创建这些结果的不同DBQueries创建的。

我知道要从$array2获取'9940'密钥并将其推入$array1,以便它将成为13654数组中的另一个元素。因此,最终结果将是:

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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,这是使用array_replace_recursive()的方法:

<?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
                        )

                )

        )

)

答案 1 :(得分:0)

如果你只想要一个union of two arrays,那就没有多少了:

$array1 += $array2

您应该考虑使用重复键和类似问题的更复杂情况,因此我通常会发现array_merge是将两个数组放在一起的更好工具。