PHP 中的自訂順序數組排序
PHP 中的數組排序通常是透過基於比較的演算法完成的。但是,在某些情況下,您需要根據預先定義的自訂順序對陣列進行排序。
考慮一個陣列數組,其中每個子數組包含兩個鍵:「id」和「title」。您希望以特定順序對主數組進行排序,例如:
[3452342, 5867867, 7867867, 1231233]
要實現此目的,您可以使用 usort() 函數。此函數可讓您指定一個比較函數,該函數定義如何比較陣列元素。
在這種情況下,比較函數使用閉包來比較自訂訂單數組中「id」值的位置( $order):
usort($array, function ($a, $b) use ($order) { $pos_a = array_search($a['id'], $order); $pos_b = array_search($b['id'], $order); return $pos_a - $pos_b; });
比較函數將$order 數組中“id”值的位置分配給$pos_a 和$pos_b。然後減去這些位置來確定順序(如果 $pos_a 小於 $pos_b,則 $a 位於 $b 之前)。
透過使用自訂順序數組和比較函數,您可以有效地對數組進行排序按預定義順序排列的數組。
以上是如何根據自訂順序對 PHP 陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!