arsort() 是 asort() 的反向版本:依值由大到小排序(降冪),並保持鍵名與值的關聯關係。常用於排名榜、熱門統計、優先級排序等需「高分在前」的場景。
arsort(array &$array, int $flags = SORT_REGULAR): bool
$flags 排序模式同 asort()。<?php
$data = [
"US" => "United States",
"IN" => "India",
"DE" => "Germany",
"ES" => "Spain"
];
arsort($data);
print_r($data);
?>
Array
(
[US] => United States
[ES] => Spain
[IN] => India
[DE] => Germany
)
krsort() 差異:krsort() 依鍵名降冪(US, IN, ES, DE),arsort() 依值降冪,順序截然不同。| 函式 | 排序依據 | 順序 | 記憶口訣 |
|---|---|---|---|
asort() | 值 | 升冪 (A→Z, 小→大) | A = Ascending (值) |
arsort() | 值 | 降冪 (Z→A, 大→小) | Ar = Ascending Reverse (值) |
ksort() | 鍵名 | 升冪 | K = Key 升冪 |
krsort() | 鍵名 | 降冪 | Kr = Key Reverse 降冪 |
95,
'userB' => 87,
'userC' => 92,
'userD' => 95
];
arsort($scores);
// 結果:userA(95), userD(95), userC(92), userB(87)
// 注意:相同值順序不保證穩定
1250,
'SKU002' => 3200,
'SKU003' => 980
];
arsort($sales); // SKU002, SKU001, SKU003
foreach ($sales as $sku => $qty) {
echo "$sku: $qty 件\n";
}
uasort() 搭配索引比較。SORT_NUMERIC/SORT_STRING。$sorted = $data; arsort($sorted);。arsort() = 「依值降冪 + 保持關聯」。是排名、熱門、優先級排序的首選函式。搭配 asort() (升冪)、krsort() (鍵名降冪)、uasort() (自訂),構成完整排序工具鏈。核心三特性:修改原陣列、回傳 bool、值降冪、鍵值關聯不變。