PHP Series : Sorting Array dalam PHP
Hallo, dalam PHP Series kali ini kita akan mempelajari cara mengurutkan elemen atau kunci array dalam urutan ascending atau descending dalam PHP.
Apa itu Sorting Array ?
PHP hadir dengan sejumlah fungsi bawaan yang dirancang khusus untuk menyortir elemen array dengan cara yang berbeda seperti alfabet atau numerik dalam urutan ascending (Menaik) atau descending (Menurun). Di sini kita akan mengeksplorasi beberapa fungsi yang paling umum digunakan untuk menyortir array.
- sort() and rsort() : Untuk mengurutkan indexed arrays
- asort() and arsort() : Untuk mengurutkan associative arrays berdasarkan nilai (value)
- ksort() and krsort() : Untuk mengurutkan associative arrays berdasarkan key
1. Mengurutkan Indexed Array secara Ascending atau Descending
Fungsi sort () digunakan untuk menyortir elemen-elemen dari array yang diindeks dalam urutan menaik (abjad untuk huruf dan angka untuk angka). Sebaliknya, Fungsi rsort () digunakan untuk menyortir elemen-elemen dari array yang diindeks dalam urutan menurun (sesuai abjad untuk huruf dan angka untuk angka).
Contoh Program :
<?php // Membuat Array Dengan String $siswa = array("Vanessa", "Burhan", "Samsul", "Mukidi"); // Mengurutkan Array Secara Ascending dan mencetak Array sort($siswa); print_r($siswa); echo '<br>'; // Mengurutkan Array Secara Ascending dan mencetak Array rsort($siswa); print_r($siswa); echo '<br>'; // Membuat Array Dengan Angka $numbers = array(1, 2, 5, 4, 7, 10); // Mengurutkan Array Secara Ascending dan mencetak Array sort($numbers); print_r($numbers); echo '<br>'; // Mengurutkan Array Secara Ascending dan mencetak Array rsort($numbers); print_r($numbers); ?>
Output Program :
Array ( [0] => Burhan [1] => Mukidi [2] => Samsul [3] => Vanessa )
Array ( [0] => Vanessa [1] => Samsul [2] => Mukidi [3] => Burhan )
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 7 [5] => 10 )
Array ( [0] => 10 [1] => 7 [2] => 5 [3] => 4 [4] => 2 [5] => 1 )
Array ( [0] => Burhan [1] => Mukidi [2] => Samsul [3] => Vanessa )
Array ( [0] => Vanessa [1] => Samsul [2] => Mukidi [3] => Burhan )
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 7 [5] => 10 )
Array ( [0] => 10 [1] => 7 [2] => 5 [3] => 4 [4] => 2 [5] => 1 )
2. Megurutkan Assosiative Array Secara Ascending dan Descending berdasarkan Value
Fungsi asort () mengurutkan elemen array asosiatif dalam urutan Ascending sesuai dengan nilainya. Fungsinya sama seperti sort (), tetapi mempertahankan hubungan antara kunci dan nilainya saat menyortir. Sedangkan Fungsi arsort () mengurutkan elemen array asosiatif dalam urutan Descending sesuai dengan nilainya.
Contoh Program :
<?php // Membuat Assosiative Array $usia = array("Vanessa"=>20, "Burhan"=>34, "Samsul"=>14, "Mukidi"=>55); // Mengurutkan Array berdasarkan value secara Ascending dan mencetak asort($usia); print_r($usia); echo '<br>'; // Mengurutkan Array berdasarkan value secara Descending dan mencetak arsort($usia); print_r($usia); echo '<br>'; ?>
Output Program :
Array ( [Samsul] => 14 [Vanessa] => 20 [Burhan] => 34 [Mukidi] => 55 )
Array ( [Mukidi] => 55 [Burhan] => 34 [Vanessa] => 20 [Samsul] => 14 )
Array ( [Samsul] => 14 [Vanessa] => 20 [Burhan] => 34 [Mukidi] => 55 )
Array ( [Mukidi] => 55 [Burhan] => 34 [Vanessa] => 20 [Samsul] => 14 )
3. Mengurutkan Assosiative Array Secara Ascending dan Descending berdasarkan Key
Fungsi ksort () mengurutkan elemen array asosiatif dalam urutan Ascending berdasarkan kunci atau key yang dimiliki. Jadi ada hubungan antara kunci dan nilainya saat menyortir, sama seperti fungsi asort (). Sedangkan Fungsi krsort () mengurutkan elemen array asosiatif dalam urutan Descending berdasarkan kunci atau key yang dimiliki.
<?php // Membuat Assosiative Array $usia = array("Vanessa"=>20, "Burhan"=>34, "Samsul"=>14, "Mukidi"=>55); // Mengurutkan Array berdasarkan key secara Ascending dan mencetak ksort($usia); print_r($usia); echo '<br>'; // Mengurutkan Array berdasarkan key secara Descending dan mencetak krsort($usia); print_r($usia); echo '<br>'; ?>
Perhatikan perbedaan antara mengurutkan berdasarkan value dan nilai dari contoh program diatas. Jika urutan berdasarkan value, maka yang diurutkan adalah usia. Sebaliknya jika urutan berdasarkan key , maka yang diurutkan adalah nama. Karena nama bertindak sebagai key dan usia bertindak sebagai value.