PHP 提供兩種按值對關聯數組進行排序的方法:使用 asort() 函數:對值從小到大排序,同時保留原始鍵名。使用 usort() 函數和閉包:透過自訂比較函數對值進行排序,同時保留原始鍵名。
使用asort()
函數
asort() 函數可依值對關聯數組進行排序,同時保留原始鍵名。它接受一個關聯數組作為參數,並按照從小到大的順序對值進行排序。
<?php $arr = [ "apple" => 5, "banana" => 3, "orange" => 2, "grape" => 4, ]; asort($arr); print_r($arr); ?>輸出:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )如你所見,陣列的值已按從小到大的順序排序,但鍵名保留不變。
使用usort() 函數和閉包
usort() 函數和閉包。
usort() 接受一個回呼函數作為參數,該函數用於比較陣列中的元素。閉包是一種匿名函數,可用作回呼。
<?php $arr = [ "apple" => 5, "banana" => 3, "orange" => 2, "grape" => 4, ]; usort($arr, function ($a, $b) { return $a[1] - $b[1]; }); print_r($arr); ?>輸出:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )在這種情況下,閉包會比較每個元素的值(
$a[1] 和
$b[ 1]),並傳回
-1、
0 或
1,取決於哪個值較大。
以上是PHP 如何依值對陣列進行排序,同時保留原始鍵名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!