簡體   English   中英

如何在 PHP 中比較兩個 JSON 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM