首页 > 解决方案 > 合并两个子数组

问题描述

合并两个包含子数组的数组的最佳方法是什么?是否有执行此操作的功能,是否可以在不使用的情况下执行此操作loop?我试过使用 function array_merge_recursive,但它没有做我需要的。

这些是示例数组:

array1 = [
  [0] => [person] => [
    'name' => 'John'
  ],
  [1] => [person] => [
    'name' => 'Arya'
  ]
]

array2 = [
  [0] => [person] => [
    'surname' => 'Snow'
  ],
  [1] => [person] => [
    'surname' => 'Stark'
  ]
]

我需要的:

array3 = [
  [0] => [person] => [
    'name' => 'John'
    'surname' => 'Snow'
  ],
  [1] => [person] => [
    'name' => 'Arya'
    'surname' => 'Stark'
  ]
]

但是通过上面提到的函数,我得到了包含 4 个元素、两个名字和两个姓氏的数组。

标签: php

解决方案


array_map与 一起使用array_merge

$array3 = array_map('array_merge', $array1, $array2);

array_map对每个输入数组的相应元素调用一个函数。然后array_merge组合这些子数组。


推荐阅读