在 PHP 中按值排序數組,同時保留鍵名的方法是:使用 usort() 函數按值排序數組。向 usort() 函數傳遞匿名函數作為比較函數,該函數傳回元素值的差值。 usort() 會根據匿名函數對陣列進行排序,同時保持鍵名不變。
如何在 PHP 中按值排序陣列並保留鍵名?
在 PHP 中,可以使用 asort()
函數依照值對陣列進行升序排序,或使用 arsort()
函數進行降序排序。但是,這兩個函數都會破壞數組中的鍵名。
如果要按值排序數組,同時保持鍵名,可以使用usort()
函數,如下:
$arr = array( 'a' => 10, 'b' => 5, 'c' => 20 ); usort($arr, function($a, $b) { return $a - $b; }); print_r($arr);
輸出:
Array ( [b] => 5 [a] => 10 [c] => 20 )
在上面的程式碼中:
usort()
接受兩個參數:要排序的陣列$arr
和一個用來比較元素值的匿名函數。 $a
和 $b
,並傳回它們的差值。 usort()
會對陣列中的元素進行排序,並使用匿名函數作為比較函數。 實戰案例
考慮一個包含學生成績的陣列:
$students = array( 'John' => 90, 'Jane' => 85, 'Peter' => 95 );
要依成績升序排列學生姓名,同時保持姓名作為鍵名,可以使用以下程式碼:
usort($students, function($a, $b) { return $a - $b; });
輸出:
Array ( [Jane] => 85 [John] => 90 [Peter] => 95 )
以上是PHP 陣列依數值排序後如何保持鍵名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!