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

如何向现有JSON结构中添加新键值对而不覆盖原有内容

你当前的写法是直接为$body变量重新赋值了一个全新的数组,自然会覆盖掉之前定义的所有内容。要实现追加键值对且不覆盖原有内容,可以采用以下两种常用方案:

  • 方案1:直接指定键名追加单组键值对(最适合仅新增一组键值的场景)
// 原有数组定义
$body = [
    "line1" => "test1",
    "line2" => "test2",
];

// 条件成立时直接追加新键值
if (/* 你的业务判断条件 */) {
    $body['line3'] = 'test3';
}

处理后将$body转为JSON输出,就会同时包含line1、line2、line3三组键值对。

  • 方案2:使用array_merge()批量追加多组键值对
    如果需要一次性新增多组键值,可以用数组合并函数减少重复赋值代码:
// 条件成立时将新数组合并到原有数组中
if (/* 你的业务判断条件 */) {
    $body = array_merge($body, [
        "line3" => "test3",
        // 可继续添加更多键值对
        "line4" => "test4"
    ]);
}

注意:如果新旧数组存在相同键名,array_merge()会默认用新数组的键值覆盖旧数组的对应值,符合需要更新已有键值的使用场景;不需要覆盖的话注意不要重复定义相同键名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:24:00