Mengisih Tatasusunan Berbilang Dimensi mengikut Nilai
Mengisih data mengikut nilai kunci tertentu dalam tatasusunan berbilang dimensi ialah tugas biasa. Ini boleh dicapai melalui penggunaan fungsi pengisihan yang ditentukan pengguna bersama dengan fungsi usort() atau uasort().
Untuk mengisih tatasusunan mengikut kekunci "pesanan", langkah berikut boleh diikuti :
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
usort($myArray, 'sortByOrder');
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
usort($myArray, function($a, $b) { return $a['order'] <=> $b['order']; });
usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
Isih Berbilang Dimensi:
Untuk melanjutkan pengisihan kepada berbilang dimensi, fungsi pengisihan boleh digunakan secara rekursif:
usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; if ($retval == 0) { $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder']; } } return $retval; });
Memelihara Kunci Persatuan:
Untuk mengekalkan perkaitan utama semasa pengisihan, gunakan uasort() dan bukannya usort(). Lihat manual PHP untuk perbandingan fungsi pengisihan tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Tatasusunan Berbilang Dimensi dalam PHP mengikut Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!