比较2个JSON对象,删除重复项


Compare 2 JSON objects, remove duplicates

我需要能够比较两个JSON对象,如:

$json1 = json_encode('["red", "green", "blue", "white"]');
$json2 = json_encode('["bla", "something", "haha", "blue"]');

现在,比较这两个对象,值"blue"是重复的,应该从$json2中删除。

我该怎么做?

如果您已将JSON解码为PHP数组json_decode($json1, true),则:

查找重复项:

$dupes = array_intersect($json1, $json2);

获取差异(无重复):

//to remove from $json1
$json1 = array_diff($json1, $dupes);
//to remove from $json2
$json2 = array_diff($json2, $dupes);

要从$json2中删除它要容易得多:

$json2 = array_diff($json2, $json1);