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

PHP使用foreach修改JSON文件 合并表单POST数据到指定子字段方法

实现代码(PHP环境)

// 1. 声明原JSON字符串
$json = '[{"Email":"myemail1@domain.com","Name":"company 1","Tel1":"xx-xx-xx","Adresse":"XXXXXX"},{"Email":"myemail2@domain.com","Name":"Company 2","Tel1":"xx-xx-xx","Adresse":"XXXXXX"}]';

// 2. 声明表单提交的vars数组,元素顺序和JSON数据顺序一一对应
$vars = [
    ["fname" => "Ameur", "lname" => "KHIL"],
    ["fname" => "Marak", "lname" => "Cristo"]
];

// 3. 将JSON字符串解码为PHP关联数组,方便字段操作
$jsonArr = json_decode($json, true);

// 4. 遍历数组合并字段
foreach ($jsonArr as $index => &$item) {
    // 合并对应表单数据 + 原数据的Tel1、Adresse字段,存入vars子字段
    $item['vars'] = array_merge(
        $vars[$index],
        [
            "Tel1" => $item['Tel1'],
            "Adresse" => $item['Adresse']
        ]
    );
    // 删除根节点的Tel1和Adresse字段,和你要求的输出格式对齐;如果需要保留这两个字段直接注释下面两行即可
    unset($item['Tel1']);
    unset($item['Adresse']);
}
// 取消数组引用,避免后续操作异常
unset($item);

// 5. 转换为最终JSON字符串
$result = json_encode($jsonArr);

// 可直接输出验证结果
echo $result;

注意事项

  • 遍历过程中通过索引$index匹配JSON数据和vars数组的对应关系,只要两个数组的排序一致就能保证数据对应正确
  • json_decode第二个参数传true是为了解码为关联数组,比对象格式操作更灵活

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:05