Setelah data tersimpan dalam array, sering kali kita perlu menatanya — misalnya menampilkan produk dari harga termurah, atau daftar nama secara alfabet. Proses menata inilah yang disebut sorting array PHP. Kabar baiknya, PHP menyediakan banyak fungsi bawaan sehingga Anda tidak perlu membuat algoritma pengurutan sendiri.
Mengapa Sorting Penting?
Data yang tertata membuat informasi lebih mudah dipahami pengguna. Bayangkan sebuah katalog toko yang produknya tampil acak — pengunjung akan kesulitan. Dengan sorting, Anda bisa menyusun data menaik (ascending) atau menurun (descending) sesuai kebutuhan.
Mengurutkan Nilai: sort() dan rsort()
<?php $angka = array(3, 1, 5, 2); sort($angka); // menjadi 1, 2, 3, 5 (menaik) rsort($angka); // menjadi 5, 3, 2, 1 (menurun) ?>
Fungsi sort() mengurutkan nilai dari kecil ke besar, sedangkan rsort() sebaliknya. Perlu diingat, kedua fungsi ini mengatur ulang kunci array menjadi 0, 1, 2, dan seterusnya.
Menjaga Pasangan Kunci: asort() dan arsort()
Pada array asosiatif, kita ingin kunci tetap menempel pada nilainya. Gunakan asort() (menaik) dan arsort() (menurun):
<?php
$nilai = array("Budi" => 80, "Siti" => 95, "Andi" => 70);
asort($nilai);
// Urutan: Andi(70), Budi(80), Siti(95) — kunci tetap terjaga
?>
Mengurutkan Berdasarkan Kunci: ksort()
Bila ingin mengurutkan berdasarkan kunci (bukan nilai), pakai ksort() (menaik) dan krsort() (menurun):
<?php
$umur = array("Budi" => 20, "Andi" => 25, "Citra" => 22);
ksort($umur); // urut kunci: Andi, Budi, Citra
?>
Tabel Ringkasan Fungsi Sorting
| Fungsi | Urut Berdasarkan | Arah |
|---|---|---|
sort / rsort | Nilai (kunci di-reset) | Naik / Turun |
asort / arsort | Nilai (kunci terjaga) | Naik / Turun |
ksort / krsort | Kunci | Naik / Turun |
Pengurutan Kustom dengan usort()
Ketika butuh aturan khusus — misalnya mengurutkan array objek berdasarkan salah satu properti — gunakan usort() dengan fungsi perbandingan sendiri:
<?php
$produk = [
["nama" => "A", "harga" => 30000],
["nama" => "B", "harga" => 10000],
["nama" => "C", "harga" => 20000]
];
usort($produk, function($a, $b) {
return $a["harga"] - $b["harga"]; // urut termurah
});
// Hasil: B(10rb), C(20rb), A(30rb)
?>
Fungsi perbandingan harus mengembalikan angka negatif, nol, atau positif untuk menentukan urutan dua elemen.
Kesalahan Umum
- Memakai sort() pada array asosiatif, yang membuat kunci teks hilang. Gunakan asort/ksort.
- Mengira fungsi sort mengembalikan array baru. Sebenarnya array diurutkan langsung (by reference), bukan dikembalikan.
Kesimpulan
Dengan beragam fungsi sorting array PHP, Anda dapat menata data apa pun dengan cepat. Kuncinya adalah memilih fungsi yang tepat: berdasarkan nilai, kunci, atau aturan kustom lewat usort(). Latih dengan data nyata seperti daftar produk agar makin terbiasa.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

