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

如何将两个同键PHP数组合并为指定结构的单个数组?

PHP 合并同键嵌套数组解决方案

先看你给出的原始数组:

$arr1 = Array (
         [2] => Array ( [0] => 41000 [1] => 31079 ) 
         [3] => Array ( [0] => 42963 [1] => 41189 ) 
    );

$arr2 = Array ( 
        [2] => Array ( [0] => 40213 [1] => 42054 ) 
        [3] => Array ( [0] => 42998 [1] => 34567 ) 
    );

要实现将相同父键下的子数组合并($arr2子数组元素在前,$arr1在后,且子数组重新索引),可以用以下两种方法:

方法一:循环遍历合并

$arr3 = [];
// 遍历$arr2的键,确保优先保留$arr2的元素顺序
foreach ($arr2 as $key => $subArr) {
    // 合并$arr2的子数组与$arr1中同键的子数组,无对应键则仅保留$arr2的内容
    $arr3[$key] = array_merge($subArr, $arr1[$key] ?? []);
}

// 输出结果
print_r($arr3);

方法二:array_map批量处理

如果两个数组的父键完全一致,可简化为:

$arr3 = array_map(function($sub2, $sub1) {
    return array_merge($sub2, $sub1);
}, $arr2, $arr1);

// 输出结果
print_r($arr3);

关键说明

  • 直接用array_merge合并父数组会因键名重复导致覆盖,必须针对每个子数组单独合并;
  • array_merge会自动重新索引数字键,正好匹配你需要的连续索引格式;
  • 方法一中的?? []是为了避免$arr1无对应键时抛出错误,确保代码健壮性。

内容的提问来源于stack exchange,提问作者Noer Herinnanda Putra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:01:18