PHP menyediakan pelbagai cara untuk mengisih tatasusunan berbilang dimensi: mengisih mengikut satu kekunci menggunakan fungsi sort() dan assor(), dan mengisih mengikut nilai menaik dan menurun masing-masing. Tulis fungsi pengisihan tersuai untuk mengisih mengikut mana-mana kunci dan menyokong peraturan yang kompleks. Gunakan fungsi array_multisort() untuk mengisih mengikut berbilang kunci pada masa yang sama Anda perlu menyediakan kekunci isihan dan tatasusunan untuk diisih.
Pengisihan tatasusunan berbilang dimensi ialah tugas biasa dalam pembangunan PHP. Apabila mengisih tatasusunan berbilang dimensi, anda boleh mengisih mengikut satu atau berbilang kunci. Artikel ini akan meneroka algoritma untuk menyusun tatasusunan berbilang dimensi dalam PHP dan menyediakan kes praktikal.
Fungsi terbina dalam sort()
dan asort()
sort()
和 asort()
sort()
根据键的自然顺序对关联数组按值递增排序。asort()
根据键的自然顺序对关联数组按值递减排序。自定义排序函数
自定义排序函数允许您按任意键进行排序。当您需要根据复杂规则排序时,此方法很有用。
function compare($a, $b) { return strcmp($a['name'], $b['name']); }
内置函数 array_multisort()
array_multisort()
sort()
mengikut kepada kunci Tertib semula jadi menyusun tatasusunan bersekutu dengan meningkatkan nilai. asort()
Mengisih tatasusunan bersekutu dalam tertib nilai menurun mengikut susunan semula jadi kekunci. Fungsi isihan tersuai membolehkan anda mengisih mengikut sebarang kekunci. Kaedah ini berguna apabila anda perlu mengisih berdasarkan peraturan yang rumit. $array = [
['name' => 'Alice', 'age' => 25],
['name' => 'Bob', 'age' => 32],
['name' => 'Eve', 'age' => 28],
];
array_multisort()
array_multisort()
membolehkan anda mengisih menggunakan berbilang kekunci pada masa yang sama. Ia memerlukan dua tatasusunan, satu mengandungi kunci isihan dan satu lagi mengandungi tatasusunan untuk diisih.
Kes praktikalPertimbangkan tatasusunan berbilang dimensi berikut:
usort($array, 'compare');
array_multisort(array_column($array, 'name'), SORT_ASC, array_column($array, 'age'), SORT_DESC);
print_r($array); // [ // ['name' => 'Alice', 'age' => 25], // ['name' => 'Eve', 'age' => 28], // ['name' => 'Bob', 'age' => 32], // ]
Atas ialah kandungan terperinci Pengisihan Array Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Isih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!