php - 按共享列值合并两个二维数组

标签 php arrays multidimensional-array merge

我知道这很容易通过 foreach 完成,然后是 while->list 等过程(我已经完成了),但是我感觉到我的代码有点脏,它看起来不像是最好的解决方案...我希望使用 native PHP 数组函数来执行以下操作:

我有两个数组,如下所示:

[
    ['rank' => '579', 'id' => '1'],
    ['rank' => '251', 'id' => '2'],
]

[
    ['size' => 'S', 'status' => 'A', 'id' => '1'],
    ['size' => 'L', 'status' => 'A', 'id' => '2'],
]

我需要合并它们来产生:

[
    ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'],
    ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'],
]

有没有一种方法可以合并两个具有 id 值(或任何其他值)的数组,而无需进入无穷无尽的 foreach 集合?

最佳答案

使用array_merge_recursive()

$array = array_merge_recursive($array1, $array2);

或者自己做函数(可能会更快)

function my_array_merge(&$array1, &$array2) {
    $result = Array();
    foreach($array1 as $key => &$value) {
        $result[$key] = array_merge($value, $array2[$key]);
    }
    return $result;
}
$array = my_array_merge($array1, array2);
print_r($array);

关于php - 按共享列值合并两个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973915/

相关文章:

java - Java 数组多项式加减法

c++ - C 与 C++ 对象的静态初始化

c - C中的十进制整数到二进制

arrays - 在通用和惯用的 Swift 中递归计算多维数组中的项目

php - 每次提交时,注册表都会创建 2 个重复数据行和 2 个空行

php - 如何在收到新邮件时刷新收件箱。(如 Gmail)

javascript - 将子数组转换为多维数组中的字符串

c# - 多维数据结构?

php - 使用php将表从在线sql服务器复制到本地服务器

php - 如何只提交 PHP 事务的一部分?