在 PHP 中,使用 uasort() 函數可依自訂排序規則對陣列進行排序,同時保留原始鍵名。自訂比較函數是一個接受兩個元素作為輸入並傳回整數的函數:負數表示前者小於後者,零表示相等,正數表示前者大於後者。
PHP 中如何按自訂排序規則對陣列進行排序,保留原始鍵名
在PHP 中,按自定義排序規則對陣列進行排序是一種常見需求。例如,您可能想要按產品名稱、價格或其他自訂標準對產品清單進行排序。
PHP 提供了一個內建函數 uasort()
,它允許您使用自訂比較函數對陣列進行排序,同時保留原始鍵名。
語法
uasort ( array &$array , callable $value_compare_func ) : bool
$array
- 要排序的陣列$value_compare_func
- 自訂比較函數,傳回正數、負數或零自訂比較函數
自訂比較函數是用來比較陣列元素的函數。它將兩個參數$a
和$b
作為輸入,並根據下列規則傳回一個整數:
$a
小於$b
,則傳回負數。 $a
等於 $b
,則傳回零。 $a
大於 $b
,則傳回正數。 實戰案例
以下是一個比較兩個字串長度的自訂比較函數的範例:
<?php function compare_string_length($a, $b) { return strlen($a) - strlen($b); }
對陣列進行排序
現在讓我們按自訂排序規則對陣列進行排序。下面的範例將按照字串長度從小到大對一個數組進行排序:
<?php $fruits = array("apple", "banana", "orange", "grapefruit"); uasort($fruits, "compare_string_length"); print_r($fruits);
輸出:
Array ( [grapefruit] => grapefruit [orange] => orange [apple] => apple [banana] => banana )
如您所見,數組現在按字串長度從短到長進行排序,同時保留了原始鍵名。
以上是PHP 中按自訂排序規則對陣列進行排序,保留原始鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!