Ini termasuk tatasusunan berbilang dimensi, termasuk tatasusunan objek dan pengisihan satu tatasusunan berdasarkan yang lain.
Isih Fungsi:
PHP memerlukan fungsi perbandingan tersuai untuk mengisih nilai yang kompleks.
Langkah:
Buat fungsi perbandingan yang mengambil dua elemen dan mengembalikan:
Gunakan salah satu daripada ini fungsi:
Jika menyusun mengikut angka kunci:
function cmp(array $a, array $b) { return $a['baz'] - $b['baz']; }
Jika mengisih tatasusunan objek:
function cmp($a, $b) { return $a->baz - $b->baz; }
Untuk pengisihan utama mengikut satu medan (cth., "foo") dan pengisihan sekunder oleh yang lain (cth., "baz"):
function cmp(array $a, array $b) { if (($cmp = strcmp($a['foo'], $b['foo'])) !== 0) { return $cmp; } else { return $a['baz'] - $b['baz']; } }
Untuk mengisih mengikut susunan tertentu (cth., "foo", "bar", "baz"):
function cmp(array $a, array $b) { static $order = array('foo', 'bar', 'baz'); return array_search($a['foo'], $order) - array_search($b['foo'], $order); }
Untuk mengisih satu Tatasusunan berdasarkan satu lagi:
array_multisort($array1, $array2);
Setakat PHP 5.5.0, anda boleh menggunakan array_column untuk mengekstrak lajur tertentu dan mengisih tatasusunan dengan sewajarnya:
array_multisort(array_column($array, 'foo'), SORT_DESC, $array);
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan dan Data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!