首页 > 解决方案 > PHP将2个数组组合成第三个

问题描述

给定 PHP 中的 2 个数组,看起来像这样......

Array
(
    [item1] => Array
        (
            [myValues] => Array
                (
                    [1] => 5
                    [2] => 1
                )

        )

    [item2] => Array
        (
            [myValues] => Array
                (
                    [1] => 5
                    [2] => 1
                )

        )

)

Array
(
    [item1] => Array
        (
            [1] => 2
        )

    [item2] => Array
        (
            [1] => 5
            [2] => 1
        )

)

array1
array ( 'item1' => array ( 'myValues' => array ( 1 => 5, 2 => 1, ), ), 'item2' => array ( 'myValues' => array ( 1 => 5, 2 => 1, ), ), )

将它们组合成一个看起来像这样的数组的最佳方法是什么......

Array
(
    [item1] => Array
        (
            [myValues] => Array
                (
                    [1] => 5
                    [2] => 1
                )
            [myValues2] => Array
                (
                    [1] => 2
                )

        )

    [item2] => Array
        (
            [myValues] => Array
                (
                    [1] => 5
                    [2] => 1
                )
            [myValues2] => Array
                (
                    [1] => 5
                    [2] => 1
                )

        )

)

array2
array ( 'item1' => array ( 1 => 2, ), 'item2' => array ( 1 => 5, 2 => 1, ), )

我无法控制输出,所以我认为我最好的方法是遍历每个数组并将项目复制到一个新的数组中。

我试过了...

print_r(array_merge($a1,$a2));

但这并没有给我我正在寻找的结果。有人有例子吗?

标签: phparrays

解决方案


使用已知的第一级密钥和您发明的第二级密钥将您的 array2 数据推送到 array1 中。

代码:(演示

$array1 = array ( 'item1' => array ( 'myValues' => array ( 1 => 5, 2 => 1, ), ), 'item2' => array ( 'myValues' => array ( 1 => 5, 2 => 1, ), ), );
$array2 = array ( 'item1' => array ( 1 => 2, ), 'item2' => array ( 1 => 5, 2 => 1, ), );

foreach ($array2 as $key => $subarray) {
    $array1[$key]['myValues2'] = $subarray;
}

var_export($array1);

输出:

array (
  'item1' => 
  array (
    'myValues' => 
    array (
      1 => 5,
      2 => 1,
    ),
    'myValues2' => 
    array (
      1 => 2,
    ),
  ),
  'item2' => 
  array (
    'myValues' => 
    array (
      1 => 5,
      2 => 1,
    ),
    'myValues2' => 
    array (
      1 => 5,
      2 => 1,
    ),
  ),
)

推荐阅读