對數(shù)組進行排序

PHP 有一些用來排序數(shù)組的函數(shù), 這個文檔會把它們列出來。

主要區(qū)別有:

  • 有些函數(shù)基于 array 的鍵來排序, 而其他的基于值來排序的:$array['key'] = 'value';。
  • 排序之后鍵和值之間的關(guān)聯(lián)關(guān)系是否能夠保持, 是指排序之后數(shù)組的鍵可能 會被重置為數(shù)字型的(0,1,2 ...)。
  • 排序的順序有:字母表順序, 升序(由低到高), 降序(由高到低),數(shù)字排序,自然排序,隨機順序或者用戶自定義排序。
  • 注意:下列的所有排序函數(shù)都是直接作用于數(shù)組本身, 而不是返回一個新的有序的數(shù)組。
  • 以下函數(shù)對于數(shù)組中相等的元素,會保留原有的排序。 在 PHP 8.0.0 之前,它們排序后的順序是未定義的(也即相等元素之間的順序是不穩(wěn)定的)。

排序函數(shù)屬性
函數(shù)名稱 排序依據(jù) 數(shù)組索引鍵保持 排序的順序 相關(guān)函數(shù)
array_multisort() string 鍵保持不變,int 鍵重新索引 第一個數(shù)組或者由選項指定 array_walk()
asort() 升序 arsort()
arsort() 降序 asort()
krsort() 降序 ksort()
ksort() 升序 krsort()
natcasesort() 自然排序,大小寫不敏感 natsort()
natsort() 自然排序 natcasesort()
rsort() 降序 sort()
shuffle() 隨機 array_rand()
sort() 升序 rsort()
uasort() 由用戶定義 uksort()
uksort() 由用戶定義 uasort()
usort() 由用戶定義 uasort()