Eu estou tentando comparar 2 json strings uns com os outros para encontrar todas as novas entradas na lista.
É assim que eu estou comparando:
$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);
Espero que ele retorne uma matriz com todas as novas entradas. No entanto, estou apenas recebendo uma matriz vazia em troca.
Qualquer ajuda seria apreciada!
Informação adicional: Eu também estou tentando comparar os valores dos arrays. É assim que estou tentando fazer isso:
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"];
}
}
}
No entanto, parece que $ json ["whitelist_name"] é indefinido
Respostas:
1 para resposta № 1array_diff_assoc é o caminho para obter diferenças de matrizes associativas:
$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);
Este pequeno pedaço de código irá descobrir se algum whitelist_name é diferente no novo json que o antigo
foreach($last_json as $key=>$value){
if($value["whitelist_name"] != $json[$key]["whitelist_name"]){
// value is changed
}else{
// value is not changed
}
}