在PHP 中,sort() 函數可以用來對數組按值進行排序,但其缺點是會破壞數組的鍵名。為了保留鍵名,我們可以使用自定義的函數來實現這一功能。
下面是一個自定義函數,它能夠在按值排序的同時保留數組的鍵名:
function sortByValue($array) { $sortedValues = array_values($array); asort($sortedValues); $sortedKeys = array_keys($sortedValues); return array_combine($sortedKeys, $array); }
假設我們有一個帶有鍵名的數組,以下代碼展示瞭如何使用自定義函數來對數組進行排序:
$array = [ 'apple' => 10, 'banana' => 20, 'orange' => 5 ]; $sortedArray = sortByValue($array); print_r($sortedArray);
該代碼執行後的輸出結果為:
Array ( [orange] => 5 [apple] => 10 [banana] => 20 )
可以看到,數組按值升序排序,並且鍵名沒有被改變。
通過本文介紹的方法,PHP 開發者可以輕鬆地對數組按值進行排序並保留鍵名。這種方式避免了使用sort() 函數時丟失鍵名的問題,非常適用於需要保持鍵名與其對應值的情況下。