u
的,能自定義比較函數;有k
的,按照鍵來排序;有r
(reverse)的,倒序;有a(association)
的,必定是鍵值關聯,除了rsort()
usort()
sort()
shuffle()
,其餘沒有a
的都是鍵值關聯,array_multisort()
鍵值關聯的保持,數字類型的不保持。asort
arsort
uasort
已實現穩定排序,php5穩定排序:http://php.net/manual/zh/func... bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
排序類型標誌:php
- SORT_REGULAR (默認)- 將項目按照一般方法比較(不修改類型,區分大小寫,大寫字母會排在小寫字母以前)
- SORT_NUMERIC - 按照數字大小比較
- SORT_STRING - 按照字符串比較(區分大小寫)
- SORT_LOCALE_STRING - 根據當前的本地化設置,按照字符串比較。 它會使用 locale 信息,能夠經過 setlocale() 修改此信息。
- SORT_NATURAL - 以字符串的"天然排序",相似 natsort()
- SORT_FLAG_CASE - 能夠組合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小寫不敏感的方式排序字符串。
$array2
會根據$array1
的結果排序,像MySQL的group by
$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 ] )
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
排序結果和natcasesort()
同樣。bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
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 )
$value_compare_func( mixed $a, mixed $b )
在$a
小於,等於或大於$b
時,該比較函數必須相應地返回一個小於,等於或大於 0 的整數。usort($a, array("TestObj", "cmp_obj"))
對象屬性排序uasort($array, array($this,"value_compare_func"))
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 )