我试图将2个json字符串相互比较,以查找列表中的所有新条目。
这就是我比较它们的方式:
$json = json_decode(file_get_contents("new.json"), true);
$last_json = json_decode(file_get_contents("last.json"), true);
$difference = array_diff($json, $last_json);
print_r($difference);
我希望它能返回一个包含所有新条目的数组。但是,我只是得到一个空数组。
任何帮助将不胜感激!
其他信息: 我也试图比较数组的值。这就是我尝试这样做的方式:
foreach($json["whitelist_name"] AS $json_key => $json_val) {
foreach($last_json["whitelist_name"] AS $last_json_key => $last_json_val) {
if($json["whitelist_name"] != $last_json["whitelist_name"]) {
echo $json["whitelist_name"];
}
}
}
但是,似乎$ json [" whitelist_name"]未定义
答案 0 :(得分:2)
array_diff_assoc是获得关联数组差异的方法:
$json = json_decode(file_get_contents("new.json"), true);
$last_json = json_decode(file_get_contents("last.json"), true);
$difference = array_diff_assoc($json, $last_json);
print_r($difference);
这段小代码会查明新json中的whitelist_name是否与旧版本不同
foreach($last_json as $key=>$value){
if($value['whitelist_name'] != $json[$key]['whitelist_name']){
// value is changed
}else{
// value is not changed
}
}