两个json数据相同,不需要显示

two json data are the same, no need to display

这里我有两个json数据,在json数据中model1judul_kontrak和model2nama_proyek有两个相同的数据aa,aa和cc数据model2中不需要显示,只显示model1数据,不一样

出口只能是模型 1 的 bb

$model1 = [
    [
        'judul_kontrak' => 'aa',
        'kode' => '01'
    ],
    [
        'judul_kontrak' => 'bb',
        'kode' => '02'
    ]
];
$model2 = [
    [
        'nama_proyek' => 'aa',
        'kode' => '05'
    ],
    [
        'nama_proyek' => 'cc',
        'kode' => '06'
    ]
];
$arr = [];
$proyek = [];
foreach ($model1 as $m1) {
    $proyek['nama_proyek'] = $m1['judul_kontrak'];
    foreach($model2 as $m2){
        if(trim(strtolower($m1['judul_kontrak'])) == trim(strtolower($m2['nama_proyek']))){
            $proyek = [];
        }
    }
    $arr[] = $proyek;
}
return $arr;

你可以使用laravelcollect()函数

$model1 = [
    [
        'judul_kontrak' => 'aa',
        'kode' => '01'
    ],
    [
        'judul_kontrak' => 'bb',
        'kode' => '02'
    ]
];
$model2 = collect([
    [
        'nama_proyek' => 'aa',
        'kode' => '05'
    ],
    [
        'nama_proyek' => 'cc',
        'kode' => '06'
    ]
]);
$arr = [];
        
foreach ($model1 as $item) {
    $val = $item['judul_kontrak'];
    $check = $model2->where('nama_proyek', $val)->count();
    if (!$check) {
        $arr[] = $item;
    }
}
return $arr;

结果是

[{
    "judul_kontrak": "bb",
    "kode": "02"
}]

只有 return $model1 数据不存在于 model2 的 nama_proyek