我试图像这样检测2个json对象之间的不同元素;
//Json1
[
{"file":"arrowssss.png"},
{"file":"arrows.png"},
{"file":"logo.png"}
]
//Json1
[
{"file":"arrows.png"},
{"file":"logo.png"}
]
我需要返回Arrowsss.png。
有任何建议吗?
答案 0 :(得分:0)
尝试
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
$json1 = '[{"file":"arrowssss.png"},
{"file":"arrows.png"},
{"file":"logo.png"}]';
$json2 = '[{"file":"arrows.png"},
{"file":"logo.png"}]';
$array1 = flatten(json_decode($json1,true));
$array2 = flatten(json_decode($json2,true));
print_r(array_diff($array1,$array2));
结果: -
Array ( [0] => arrowssss.png )
答案 1 :(得分:0)
$json1='[
{"file":"arrowssss.png"},
{"file":"arrows.png"},
{"file":"logo.png"}
]';
$json2 = '[
{"file":"arrows.png"},
{"file":"logo.png"}
]';
function getFile($key)
{
return isset($key['file']) ? $key['file'] : null;
}
$diff = array_diff(array_map('getFile', json_decode($json1, true)), array_map('getFile', json_decode($json2, true)));
print_r($diff);
结果: -
Array ( [0] => arrowssss.png )