PHP提供了多種排序多維數組的方法:使用sort()和asort()函數按單一鍵排序,分別依照值遞增和遞減排序。編寫自訂排序函數可以按任意鍵排序,支援複雜規則。使用array_multisort()函數同時按多個鍵排序,需提供排序鍵和要排序的陣列。
多維數組排序是 PHP 開發中常見的任務。排序多維數組時,可以按單一或多個鍵進行排序。本文將探討 PHP 中排序多維數組的演算法,並提供實戰案例。
內建函數sort()
和asort()
sort()
根據鍵的自然順序將關聯陣列依值遞增排序。 asort()
根據鍵的自然順序將關聯陣列依值遞減排序。 自訂排序函數
自訂排序函數可讓您按任意鍵進行排序。當您需要根據複雜規則排序時,此方法很有用。
function compare($a, $b) { return strcmp($a['name'], $b['name']); }
內建函數 array_multisort()
#array_multisort()
允許您同時使用多個鍵進行排序。它需要兩個數組,一個包含排序鍵,另一個包含要排序的數組。
考慮以下多維數組:
$array = [ ['name' => 'Alice', 'age' => 25], ['name' => 'Bob', 'age' => 32], ['name' => 'Eve', 'age' => 28], ];
按名稱遞增排序
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], // ]
以上是PHP多維數組排序揭秘:揭開排序演算法的奧秘的詳細內容。更多資訊請關注PHP中文網其他相關文章!