为了账号安全,请及时绑定邮箱和手机立即绑定

在PHP中合并两个具有公共字段值的json文件

在PHP中合并两个具有公共字段值的json文件

PHP
萧十郎 2021-04-29 16:45:36
我已经用PHP生成了两个json文件。一,输出如下。即/json1.json{   "Zipcode":"22581",   "City":"",   "Primary State":"Maryland",   "Common Field":"49969",   "County":"Something"}第二个输出如下。即 /json2.json{    "Common Field":"49969",    "Option 1":"Y",    "Option 2":"",    "Option 3":""}我想找到一种方法来合并它们,理想情况下是使用PHP,这样它们的输出如下:{    "Zipcode":"22581",    "City":"",    "Primary State":"Maryland",    "Common Field": {       "Common Field":"49969",       "Option 1":"Y",       "Option 2":"",       "Option 3":""    },    "County":"Something"},更新,以下两个发布者建议的方法不起作用:不管是否在最后使用true,这只会在每个条目旁边输出带有数字的json。并且不会通过公共字段将两个json文件与所需的格式连接起来,如上所述。$json1 = json_decode(file_get_contents('json1.json'),true);$json2 = json_decode(file_get_contents('json2.json'),true);$json1['Common Field'] = $json2;echo json_encode($json1, JSON_PRETTY_PRINT);这只是从/输出每个条目json1.json:"0": { "Zipcode": "20101", "City": "", "Primary State": "Virginia", "Common Field": "49530", "County": "Loudoun" }
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用array_walk以获得所需的结果


$json1 = '{

 "Zipcode":"22581",

 "City":"",

 "Primary State":"Maryland",

 "Common Field":"49969",

 "County":"Something"

}';


$json2 = '{

  "Common Field":"49969",

  "Option 1":"Y",

  "Option 2":"",

  "Option 3":""

}';

$json1Array = json_decode($json1, true);

$json2Array = json_decode($json2, true);

array_walk($json1Array, function($value, $key) use (&$json1Array, $json2Array){

  $json1Array['Common Field'] = $json2Array;

});

$result = json_encode($json1Array);


查看完整回答
反对 回复 2021-05-14
?
慕的地10843

TA贡献1785条经验 获得超8个赞

试试这个:


$json1 = (array)json_decode(file_get_contents('json1.json'));

$json2 = (array)json_decode(file_get_contents('json2.json'));


$json1['Common Field'] = $json2;


echo json_encode($json1, JSON_PRETTY_PRINT);

输出:


{

    "Zipcode": "22581",

    "City": "",

    "Primary State": "Maryland",

    "Common Field": {

        "Common Field": "49969",

        "Option 1": "Y",

        "Option 2": "",

        "Option 3": ""

    },

    "County": "Something"

}


查看完整回答
反对 回复 2021-05-14
  • 3 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信