【问题标题】:two json data are the same, no need to display两个json数据相同,不需要显示
【发布时间】:2021-04-11 23:57:54
【问题描述】:

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

出口只能是model1的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;

【问题讨论】:

  • 您想要来自 model1 的数据在 model2 中不存在,对吧?
  • 是的,我想要 model1 中不存在于 model2 中的数据,

标签: laravel api lumen


【解决方案1】:

你可以使用 laravel collect() 函数

$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"
}]

它只返回model2的nama_proyek中不存在的$model1数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多