這篇文章跟大家分享的內容是關於php陣列排序函數 ,有一定的參考價值,有需要的朋友可以參考一下。
函數中有u
的,能自訂比較函數;有k
的,依照鍵來排序;有r
(reverse)的,倒序;有a(association)
的,一定是鍵值關聯,除了rsort()
usort()
sort()
shuffle()
,其他沒有a
的都是鍵值關聯,array_multisort()
鍵值關聯的保持,數字類型的不保持。
下列的所有排序函數都是直接作用於陣列本身, 而不是傳回一個新的有序的陣列。
以下函數對於陣列中相等的元素,它們在排序後的順序是未定義的。 (也即相等元素之間的順序是不穩定的,即具有相同值的元素每次排序的結果都是不確定(關聯數組))。 php7asort
arsort
uasort
已實作穩定排序,php5穩定排序:http://php.net/manual/zh/func...
在對含有混合型別值的陣列排序時要小心,因為sort() 可能會產生不可預測的結果。
可以用來一次對多個陣列進行排序,或是根據某一維或多維對多維數組進行排序。
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
排序類型標誌:
#SORT_REGULAR (預設)- 將項目依照通常方法比較(不修改類型,區分大小寫,大寫字母會排在小寫字母之前)
SORT_NUMERIC - 依照數字大小比較
SORT_STRING - 依照字串比較(區分大小寫入)
SORT_LOCALE_STRING - 根據目前的本地化設置,按照字串比較。它會使用 locale 訊息,可以透過 setlocale() 修改此資訊。
SORT_NATURAL - 以字串的"自然排序",類似natsort()
SORT_FLAG_CASE - 可以組合(位元或OR) SORT_STRING或SORT_NATURAL 大小寫不敏感的方式排序字串。
1.1 若有多個陣列參數時, $array2
會根據$array1
的結果排序,像MySQL的group by
1.2 不區分大小寫的排序:
$array = array('Alpha', 'atomic', 'Beta', 'bank'); $array_lowercase = array_map('strtolower', $array); // 先复制一个转为小写数组 array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array); // 先对小写数组排序,再排序原数组 print_r($array);
function array_orderby() { $args = func_get_args(); $data = array_shift($args); foreach ($args as $n => $field) { if (is_string($field)) { $tmp = array(); foreach ($data as $key => $row) $tmp[$key] = $row[$field]; $args[$n] = $tmp; } } $args[] = &$data; call_user_func_array('array_multisort', $args); return array_pop($args); }
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
3.rsort
bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
4.asort
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
倒序並維持索引關係(association,reverse)
bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
鍵名稱排序
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
bool usort ( array &$array , callable $value_compare_func )
$a小於,等於或大於
$b
bool uasort ( array &$array , callable $value_compare_func )
鍵名稱
進行排序bool uksort ( array &$array , callable $key_compare_func )
bool natcasesort ( array &$array )
bool natsort ( array &$array )
bool shuffle ( array &$array )
以上是php中13個陣列排序函數 的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!