Dua data json yang sama.

Disini aku punya 2 data json yang dimana dari dua data itu jika ada yang sama maka tidak usah di munculkan.

$model1 = [
    [
        'judul_kontrak' => 'aa',
        'no_kontrak' => '01'
    ],
    [
        'judul_kontrak' => 'bb',
        'no_kontrak' => '02'
    ]
];
$model2 = [
    [
        'nama_proyek' => 'aa',
        'no_kontrak' => '08'
    ],
    [
        'nama_proyek' => 'cc',
        'no_kontrak' => '09'
    ]
];
$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;

didalam model1 judul_kontrak dan model2 nama_proyek itu ada data yang sama yaitu aa nah si aa sama si cc yang di model2 gak usah dimunculin yang di munculin hanya model1 aja tapi kalo model1 ada yang sama, sama model2  maka gak usah ditampilkan.

avatar syahrulromadoni
@syahrulromadoni

2 Kontribusi 3 Poin

Diperbarui 1 tahun yang lalu

Tanggapan

Tujuan akhirnya seperti apa? hasil array yang diinginkan coba dikasih contohnya di atas

1 Jawaban:

<div>Karena ini loop setiap elemen, maka walaupun di loop pertama tidak masuk, tapi karena di element berikutnya sudah beda lagi, maka akan masuk (karena tidak sama judul_kontraknya<br>Conoh 'bb' dan 'aa'. meskipun 'aa' pertama memenuhi syarat.<br><br>Ide kasar saya:<br>- Gabungkan semuanya menjadi satu array (kita sebut saja $allItems).<br>- Siapkan array kosong baru, kita sebut $uniqueArray<br>- Loop $allItems, dan uji apakah $allItems[index]['judul_kontrak'] = sudah ada di $uniqueArray. Jika belum masukkan, jika sudah, tidak usah masukkan</div>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban