Fungsi-Fungsi Array PHP

Cara Mengurutkan Data Array Multidimensi Menggunakan Fungsi Array_multisort() Pada Bahasa Pemrograman PHP


Saat membuat suatu program menggunakan bahasa pemrograman PHP, barangkali kita perlu untuk mengurutkan data array multidimensi. Bahasa pemrograman PHP menyediakan fungsi array_multisort(), bagaimana penerapannya pada program PHP, yuk simak artikel ini.

Subkategori: array_multisort()


Dalam array multidimensi, ada beberapa baris dan kolom di dalamnya.

Misalkan pada suatu array ada beberapa angka.

Kita perlu untuk mengurutkan angka-angka tersebut.

Yang diurutkan pertama adakah angka pada kolom pertama.

Kalau ditemukan angka yang sama pada kolom pertama, maka kemudian pengurutan diserahkan pada kolom kedua. 

Kalau pada kolom kedua ditemukan ada angka yang sama maka pengurutan kemudian diserahkan pada kolom ketiga, begitu terus sepanjang kolom tersedia.

Untuk melakukan hal seperti itu, bahasa pemrograman PHP memiliki fungsi array_multisort()

Coba lihat contoh di bawah ini.

Misalkan ada variabel $data dengan nilai berbentuk array seperti ini. 

Array
(
    [0] => Array
        (
            [volume] => 67
            [edition] => 2
        )

    [1] => Array
        (
            [volume] => 86
            [edition] => 1
        )

    [2] => Array
        (
            [volume] => 85
            [edition] => 6
        )

    [3] => Array
        (
            [volume] => 98
            [edition] => 2
        )

    [4] => Array
        (
            [volume] => 86
            [edition] => 6
        )

    [5] => Array
        (
            [volume] => 67
            [edition] => 7
        )

)

 

Nah tugas kita adalah ingin mengurutkan data pada kolom volume agar terurut dari angka besar ke angka kecil, atau pengurutan descending.

Jika ditemukan angka volume yang sama, maka pengurutan diserahkan pada kolom berikutnya yaitu edition.

Sebagai gambaran, coba kita tampilkan angka volume dan edition itu sesuai kolom masing-masing. Caranya kita gunakan kode program di bawah ini

foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

 

echo "susunan volume:";

print_r($volume);


echo "susunan edition:";

print_r($edition);

 

Keluaran dari kode di atas adalah berupa susunan angka pada kolom volume dan kolom edition seperti di bawah ini

susunan volume:
Array
(
    [0] => 67
    [1] => 86
    [2] => 85
    [3] => 98
    [4] => 86
    [5] => 67
)

susunan edition:
Array
(
    [0] => 2
    [1] => 1
    [2] => 6
    [3] => 2
    [4] => 6
    [5] => 7
)

 

Selanjutnya, tujuan kita ingin mengurutkan data tersebut, kita gunakan fungsi array_multisort().

Kita akan mengurutkan kolom pertama atau kolom data volume, dari angka terbesar ke angka terkecil (descending) terlebih dahulu. 

Jika ditemukan angka yang sama pada kolom volume maka pengurutan selanjutnya diserahkan pada kolom kedua atau kolom data edition secara descending juga.

Untuk mengurutkan itu, kita gunakan kode program seperti di bawah ini.  

$volume = array_column($data, 'volume');
$edition = array_column($data, 'edition');

array_multisort($volume, SORT_DESC, $edition, SORT_DESC, $data);

 

Jika kita mau mengurutkan dari angka besar ke angka kecil maka parameter yang kita gunakan adalah SORT_DESC, namun jika kita ingin sebaliknya maka kita gunakan parameter SORT_ASC.

Untuk membuktikan nya, coba tampilkan variabel $data menggunakan fungsi print_r(), dengan kode program print_r($data).

Hasilnya kode program di atas seperti di bawah ini.

Array
(
    [0] => Array
        (
            [volume] => 98
            [edition] => 2
        )

    [1] => Array
        (
            [volume] => 86
            [edition] => 6
        )

    [2] => Array
        (
            [volume] => 86
            [edition] => 1
        )

    [3] => Array
        (
            [volume] => 85
            [edition] => 6
        )

    [4] => Array
        (
            [volume] => 67
            [edition] => 7
        )

    [5] => Array
        (
            [volume] => 67
            [edition] => 2
        )

)

 

Terlihat angka pada kolom pertama atau kolom volume terurut dari angka terbesar ke angka terkecil.

Apabila pada urutan kolom volume ada angka yang sama, seperti pada data volume key indeks ke-1 dan key indeks ke -2 yaitu sama sama bernilai 86, maka pengurutannya kemudian diserahkan pada kolom kedua atau kolom edition yaitu antara key indeks ke-1 dan key indeks ke-2.

Begitu juga pada kolom volume key indeks ke-4 dan key indeks ke-5, sama sama memiliki nilai yang sama yaitu 67, sehingga pengurutannya kemudian diserahkan pada kolom keduanya yaitu kolom edition. 

Demikian pemaparan singkat tentang cara mengurutkan data pada array multidimensi, semoga artikel ini bermanfaat. Selamat belajar PHP.

Artikel ini telah dikunjungi sebanyak 9 pengunjung dalam satu minggu terakhir
Artikel ini ditulis oleh:
foto penulis
mister bram
biasa aja

Bagaimana menurutmu artikel ini?

 Silakan bagikan artikel ini



 Silakan tulis dan bagikan pendapatmu untuk didiskusikan
Produk menarik untuk kamu
silakan geser dan klik banner di bawah ini untuk dapatkan informasi selengkapnya