You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按键合并两个PHP数组,将对应键值追加而非覆盖?

用PHP内置函数轻松实现数组合并

嘿,这个需求完全不用嵌套foreach来折腾!用array_map就能一步搞定,而且代码简洁得很。

PHP 7.4+ 版本(推荐)

如果你用的是PHP 7.4及以上,箭头函数让这个写法更清爽:

$finalArray = array_map(fn($itemFromArray, $itemFromArray2) => [$itemFromArray, $itemFromArray2], $array, $array2);

兼容低版本PHP(7.3及以下)

要是你的PHP版本还没到7.4,换成匿名函数就行:

$finalArray = array_map(function($itemFromArray, $itemFromArray2) {
    return [$itemFromArray, $itemFromArray2];
}, $array, $array2);

为什么这个方法管用?

array_map会同步遍历你传入的两个数组,把每个对应键的子数组拿出来,包装成一个新的数组。因为你的两个输入数组键完全匹配(都是test1和test2),所以最终结果会完美保留原有的键,每个键下面就是你要的两个子数组的集合,和你给出的$finalArray结构完全一致。

验证结果

运行上面的代码后,$finalArray的结构就是你期望的:

[
    "test1" => [
        ['value' => 1, "date"=> '2019-01-01'],
        ['value' => 3, "date"=> '2018-01-01']
    ],
    "test2" => [
        ['value' => 2, "date"=> '2019-01-01'],
        ['value' => 4, "date"=> '2018-01-01']
    ]
];

小提醒

这个方法默认两个数组的键是完全对应的,如果$array2有$array没有的键,这些键会被忽略;如果$array有$array2没有的键,对应位置会出现null。不过根据你的问题描述,应该是两个数组键完全一致的场景,所以完全没问题。

内容的提问来源于stack exchange,提问作者LukeKov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:08:29