[英]How to compare two JSON files in PHP
我正在處理 JSON 文件以比較它們的數據。 我只想顯示相同的數據,但我想比較整個文件。 這是我正在使用的代碼:
<?php
$data = file_get_contents("json/categories.json");
$data1 = file_get_contents("json/categories.json");
$data = json_decode($data, true);
$data1 = json_decode($data1, true);
$result_array = array_diff($data, $data1);
echo "you got it";
/*
foreach ($data1 as $v) {
foreach ($data as $m) {
if ($v['LocationCategoryNo'] == $m['LocationCategoryNo']) {
echo $m[LocationCategoryNo'] . " " . $m['LocationCategoryNo'];
}
}
}
*/
$found = array_search($data1, array_column($data, 'LocationCategoryNo'));
if ($found === False) {
echo "Not Found";
} else {
echo $data[$found]['LocationCategoryNo'];
}
//$common_items = array_intersect($data, $data1);
?>
<?php
$json1 = <<<END
[
{"LocationCategoryNo":1},
{"LocationCategoryNo":2},
{"LocationCategoryNo":3},
{"LocationCategoryNo":4},
{"LocationCategoryNo":5}
]
END;
$json2 = <<<END
[
{"LocationCategoryNo":4},
{"LocationCategoryNo":5},
{"LocationCategoryNo":6},
{"LocationCategoryNo":7},
{"LocationCategoryNo":8}
]
END;
$data1 = json_decode($json1, true);
$data2 = json_decode($json2, true);
//If you want the full records matched by the value of LocationCategoryNo
$commonRecords = array_filter($data1, function($currTuple)
{
global $data2;
foreach($data2 as $currCompareTuple)
{
if($currCompareTuple['LocationCategoryNo'] == $currTuple['LocationCategoryNo'])
{
return true;
}
}
return false;
});
//If you just want the matching LocationCategoryNo values
$ids1 = array_column($data1,'LocationCategoryNo');
$ids2 = array_column($data2,'LocationCategoryNo');
$commonIds = array_intersect($ids1, $ids2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.