Categories: PHP

PHP – Menggabungkan array data berurutan yang muncul berkali-kali

Bismillaahirrohmaanirrohiim…

Sekitar dua hari saya membuat kode PHP untuk menggabungkan data array yang muncul berurutan namun muncul berkali-kali.

Ini terdapat dalam pembuatan data jadwal pelajaran, dimana setiap mata pelajaran dikelompokkan berdasarkan mata pelajaran, namun ada juga di hari yang sama mata pelajaran muncul di jam yang berbeda.

Misalnya mata pelajaran Bhs Indonesia pada hari kamis ada pada jam ke 3-4 dan 7-8. Tujuannya adalah mata pelajaran Bhs Indonesia dikelompokkan data ke 1 = 3-4 dan data ke 2 = 7-8.

Berikut kodenya:

    //data dalam array bisa muncul berkali2 namun tetap mempertahankan urutannya.
    //coba gabungkan array yg sama scr berurutan=sukses alhamdulillah
    $gabs = array();    
    $gabs_temp = array();
    $iddata_prev = '';
    $idx = 0;
    foreach ($data_arr as $arr1) {
        
        $iddata = $arr1['iddata'];

        if (!isset($gabs_temp[$iddata])) {
            $idx++;
            $gabs[$idx][$iddata]['data_mulai'] = $arr1;
            $gabs_temp[$iddata] = '';


            if (isset($gabs_temp[$iddata_prev])) {
                unset($gabs_temp[$iddata_prev]);
            }
        } else {
            $gabs[$idx][$iddata]['data_selesai'] = $arr1;
        }

        $iddata_prev = $iddata;
    }
    var_dump($gabs);

Data asalnya:

menjadi:
Kebetulan data pada gambar di atas hanya berurutan dan tidak berulang.

Namun kode program tadi apabila jadwal berulang pada hari yang sama tetap tertangani.

Semoga bermanfaat…

Bagikan
rasupe

Recent Posts

CPU usage tinggi pada server

Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…

2 months ago

Membersihkan log mongodb yang besar

Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…

2 months ago

Cara mengakses gps di HP dengan javascript

Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…

5 months ago

Menghitung jarak dua titik koordinat dengan php dan javascript

Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…

5 months ago

Kemasan cleo botol kecil sering bikin tangan terluka

Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…

5 months ago

Solusi InsCek pada meteran PLN

Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…

5 months ago