在这里,我展示了我当前正在使用的示例,它正在工作但效率不够高。我已经难倒了几天,试图找到一个有效的替代方案,但我缺乏知识。
我有 2 个 JSON 文件,它们共享相同的键,但值会发生变化。
$file_data = file_get_contents('./data_1.json');
$json_data_1 = json_decode($file_data, true);
$file_data = file_get_contents('./data_2.json');
$json_data_2 = json_decode($file_data, true);
foreach($json_data_1["items"] as $key_1=>$val_1){
foreach($json_data_2["items"] as $key_2=>$val_2){
if ($val_1['guy'] == $val_2['guy']) {
echo "Match Found!";
// here I check for any differences
// in other values
break(1);
}
}
}
$file_data = file_get_contents('./data_1.json');
$json_data_1 = json_decode($file_data, true);
$file_data = file_get_contents('./data_2.json');
$json_data_2 = json_decode($file_data, true);
print_r(array_diff($json_data_1["items"],$json_data_2["items"]);
https://php.net/manual/en/function.array-diff.php
因为它使用相同的键,你只需要使用一个foreach循环并使用该键。
试试这段代码:
$file_data = file_get_contents('./data_1.json');
$json_data_1 = json_decode($file_data, true);
$file_data = file_get_contents('./data_2.json');
$json_data_2 = json_decode($file_data, true);
foreach($json_data_1["items"] as $key_1=>$val_1){
if ($val_1['guy'] == $json_data_2['items'][$key_1]['guy']) {
echo "Match Found!";
// here I check for any differences
// in other values
break(1);
}
}
}