puddingpp 2019-06-28
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 $... ]]] )
排序类型标志:
$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 )