| 函數 | 排序依據 | 保留鍵名 | 適用場景 |
|---|---|---|---|
sort() | 值 | 否(重置為0,1,2...) | 索引陣列,不需保留鍵名關聯 |
asort() | 值 | 是 | 關聯陣列,需保持鍵值對應關係 |
ksort() | 鍵名 | 是 | 按鍵名排序,保留原鍵值對應 |
sort() - 重置鍵名$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
sort($arr);
print_r($arr);
/* Output:
Array
(
[0] => Cat
[1] => Dog
[2] => Horse
) */
asort() - 保留鍵名關聯$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
asort($arr);
print_r($arr);
/* Output:
Array
(
[b] => Cat
[a] => Dog
[c] => Horse
) */
ksort() - 按鍵名排序$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
ksort($arr);
print_r($arr);
/* Output:
Array
(
[a] => Dog
[b] => Cat
[c] => Horse
) */
三個函數均支援可選第二個參數sort_flags:
SORT_REGULAR - 正常比較(預設)SORT_NUMERIC - 數值比較SORT_STRING - 字串比較SORT_LOCALE_STRING - 依據區域設置字串比較sort()asort()ksort()rsort()、arsort()、krsort()掌握這三個函數的差異,是PHP陣列操作進階的基石。