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

PHP中如何向同键名的多维数组添加对应值

如何将$array2的键值合并到$array1的对应子数组中?

嘿,要实现这个需求其实挺简单的,我给你分享两种常用的方法,你可以根据自己的场景来选:

方法一:循环遍历(直观易懂,兼容性强)

这是最容易理解的方式,逐个处理$array2里的键值对,把值追加到$array1对应键的子数组末尾:

<?php
$array1 = array (
    "John" => array("10" , "Holland"),
    "Cindy" => array("20" , "Sweden"),
);
$array2 = array (
    "John" => "Amsterdam",
    "Cindy" => "Stockholm",
);

// 先复制$array1到$array3,避免修改原数组(如果不需要保留原数组,直接操作$array1也行)
$array3 = $array1;

// 遍历$array2的每个键值对
foreach ($array2 as $name => $city) {
    // 安全检查:确保$array3里存在这个键,并且对应的值是数组
    if (isset($array3[$name]) && is_array($array3[$name])) {
        $array3[$name][] = $city;
    }
}

// 输出结果看看
print_r($array3);
?>

这样处理后,$array3就完全是你想要的结构啦,而且还保留了原$array1的内容,很灵活。

方法二:用array_map函数(代码简洁)

如果你的$array1和$array2的键完全对应(数量、顺序都一致),可以用array_map来实现更简洁的写法:

<?php
$array1 = array (
    "John" => array("10" , "Holland"),
    "Cindy" => array("20" , "Sweden"),
);
$array2 = array (
    "John" => "Amsterdam",
    "Cindy" => "Stockholm",
);

$array3 = array_map(function($subArray, $city) {
    // 把城市名追加到子数组里
    $subArray[] = $city;
    return $subArray;
}, $array1, $array2);

print_r($array3);
?>

这个方法一行核心代码就能搞定,但要注意前提是两个数组的键必须一一对应,不然结果可能不符合预期哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:28:22