可以在两个不同的列名称(id< - > lid)上加入PHP两个JSON吗? JSON看起来像这样:
[{"id":504,"displayname":"Jack","idname":"Work"},{"id":505,"displayname":"Peter","idname":"Home"}]
[{"id":12,"role_id":1800,"prv":2,"lid":504},{"id":20,"role_id":1800,"prv":2,"lid":505}]
输出应该像这样说:
[{"id":504,"displayname":"Jack","idname":"Work","id":12,"role_id":1800,"prv":2,"lid":504},{"id":505,"displayname":"Peter","idname":"Home","id":20,"role_id":1800,"prv":2,"lid":505}]
提前感谢您的帮助。
答案 0 :(得分:0)
这里的问题是你的JSON中会有相同名称的密钥。从理论上讲,这个答案正是您所寻找的:answer
但是,如果您需要自定义合并算法,则以下方法有效:
$json1 = json_decode($json1String, true);
$json2 = json_decode($json2String, true);
$mergedJson = array();
foreach($json1 as $values)
{
foreach($json2 as $values2)
{
if($values['id'] == $values2['lid'])
{
$mergedJson[] = array_merge_recursive($values, $values2);
break;
}
}
}
$finalJsonString = json_encode($mergedJson);
这是非常基本的。我正在使用数组合并递归函数,但您不需要使用它。您很可能需要更多代码来手动合并阵列。但这应该是一个很好的起点。