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

PHP中如何将两个数组合并,将其中一个数组的元素添加到另一个数组的每个子数组末尾?

PHP数组合并:将数组$b元素添加到$a对应子数组末尾

很简单,我给你几个实用的解决方案,你可以根据自己的场景选择:

方法一:foreach循环(最直观易懂,推荐)

这是最容易理解和维护的方式,还能避免键不匹配的问题:

$a = array (1 => [ 1 => "a", 2 => "b", 3 => "c"], 2 => [ 1 => "d", 2 => "e", 3 => "f"], 3 => [ 1 => "g", 2 => "h", 3 => "i"]);
$b = array (1 => "1", 2 => "2", 3 => "3");

// 遍历$b的每个键值对
foreach ($b as $key => $value) {
    // 先检查$a中是否存在对应键的子数组,防止报错
    if (isset($a[$key])) {
        $a[$key][4] = $value;
    }
}

// 验证结果
print_r($a);

运行后就能得到你想要的数组结构,这个方法的好处是不管$a和$b的键是不是连续的,只要键对应就能正确添加元素。

方法二:array_map函数(简洁的函数式写法)

如果你的$a和$b的键是严格一一对应、顺序也完全一致的,可以用这个更简洁的写法:

$a = array (1 => [ 1 => "a", 2 => "b", 3 => "c"], 2 => [ 1 => "d", 2 => "e", 3 => "f"], 3 => [ 1 => "g", 2 => "h", 3 => "i"]);
$b = array (1 => "1", 2 => "2", 3 => "3");

// 同时遍历两个数组的对应元素,处理后返回新数组
$a = array_map(function($subArray, $value) {
    $subArray[4] = $value;
    return $subArray;
}, $a, $b);

print_r($a);

⚠️ 注意:如果$a和$b的键不匹配(比如$a有键4但$b没有),array_map会按元素的索引顺序匹配,可能会出现错误的对应关系,所以这种方法只适合键完全对应的场景。

方法三:array_walk(直接修改原数组)

如果你不想重新赋值数组,想直接修改原$a的话,可以用array_walk:

$a = array (1 => [ 1 => "a", 2 => "b", 3 => "c"], 2 => [ 1 => "d", 2 => "e", 3 => "f"], 3 => [ 1 => "g", 2 => "h", 3 => "i"]);
$b = array (1 => "1", 2 => "2", 3 => "3");

// 引用传参修改原数组的子数组,同时引入$b
array_walk($a, function(&$subArray, $key) use ($b) {
    if (isset($b[$key])) {
        $subArray[4] = $b[$key];
    }
});

print_r($a);

这个方法通过&$subArray引用子数组,直接在原数组上修改,不需要重新赋值给$a。

内容的提问来源于stack exchange,提问作者David Solano Rojas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:22:43