Banyak situasi timbul apabila keperluan untuk mengisih tatasusunan berbilang dimensi diperlukan. Ini boleh dicapai dengan menggunakan fungsi perbandingan yang ditentukan pengguna dalam fungsi usort().
Isih mengikut Kekunci Tunggal Menggunakan usort()
Untuk mengisih tatasusunan yang diberikan dengan nilai kekunci "pesanan", kita boleh mentakrifkan fungsi pengisihan seperti berikut:
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; } usort($myArray, 'sortByOrder');
Sebagai alternatif, kita boleh menggunakan fungsi tanpa nama:
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
Isih Berbilang Dimensi
Pendekatan ini boleh dilanjutkan untuk mengisih tatasusunan berbilang dimensi. Contohnya, untuk mengisih mengikut "perintah" dan kemudian "suborder":
usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; } return $retval; });
Memelihara Persatuan Utama dengan uasort()
Jika anda perlu mengekalkan persatuan utama , gunakan uasort(). Untuk perbandingan, rujuk perbandingan manual fungsi pengisihan tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan Berbilang Dimensi dalam PHP Menggunakan `usort()` dan `uasort()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!