#laravel #api #lumen
#laravel #API #lumen
Вопрос:
здесь у меня есть два json-данных, в данных json в model1 judul_kontrak
и model2 nama_proyek
есть два одинаковых данных aa, данные aa и cc в model2 не нужно отображать, отображаются только данные model1, которые не совпадают.
выход должен быть только bb из model1
$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;
Комментарии:
1. Вам нужны данные из model1, которых нет в model2, верно?
2. да, мне нужны данные из model1, которых нет в model2,
Ответ №1:
вы можете использовать collect()
функцию laravel
$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"
}]
он возвращает только данные $model1, которых нет в model2 nama_proyek