数组排序,共有13个函数,可以自定义比较函数;k,根据key排序;r(reverse),倒序;yesa(association),必须是key-value关联,除了rsort()usort()sort()shuffle(),其他没有a的都是key-value关联,array_multisort()维护key-value关联,但不维护数字类型。下面列出的所有排序函数都直接对数组本身进行操作,而不是返回一个新的排序数组。以下函数未定义数组中相等元素的排序顺序。(即相等元素之间的顺序是不稳定的,即每次对相同值的元素排序的结果是不确定的(关联数组))。php7asortarsortuasort已经实现稳定排序,php5稳定排序:http://php.net/manual/zh/func...对包含混合类型值的数组进行排序时要小心,因为sort()可能会产生不可预知的结果。1.array_multisort可用于一次对多个数组进行排序,也可用于对多维数组按某一维或多维进行排序。boolarray_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-根据当前区域设置按字符串比较。它使用可以使用setlocale()更改的语言环境信息。SORT_NATURAL-在字符串的“自然排序”中,类似于natsort()SORT_FLAG_CASE-可以与SORT_STRING或SORT_NATURAL组合(按位或)以不区分大小写的方式对字符串进行排序。1.1如果有多个数组参数,$array2会根据$array1的结果进行排序,类似MySQL的groupby1.2不区分大小写排序:$array=array('Alpha','atomic','Beta','银行');$array_lowercase=array_map('strtolower',$array);//首先复制一个小写数组array_multisort($array_lowercase,SORT_ASC,SORT_STRING,$array);//先排序小写数组,再排序原始数组print_r($array);1.3对数据库结果进行排序functionarray_orderby(){$args=func_get_args();$data=array_shift($args);foreach($argsas$n=>$field){if(is_string($field)){$tmp=数组();foreach($dataas$key=>$row)$tmp[$key]=$row[$field];$args[$n]=$tmp;}}$args[]=&$data;call_user_func_array('array_multisort',$args);returnarray_pop($args);}2.sort删除原key,对数组进行排序(order)boolsort(array&$array[,int$sort_flags=SORT_REGULAR])sort($fruits,SORT_NATURAL|SORT_FLAG_CASE);排序结果与natcasesort()相同。3.rsort对数组进行反向排序boolrsort(array&$array[,int$sort_flags=SORT_REGULAR])4.asort维护键值关联。主要用于对元素顺序很重要的关联数组进行排序。boolasort(array&$array[,int$sort_flags=SORT_REGULAR])5.arsort倒序并保持索引关系(关联、反向)boolasort(array&$array[,int$sort_flags=SORT_REGULAR])6.ksortkeynameSortingboolksort(array&$array[,int$sort_flags=SORT_REGULAR])7.krsortkeyreverseorderbykeynameboolkrsort(array&$array[,int$sort_flags=SORT_REGULAR])8.usort使用用户自定义比较functionto对数组中的值进行排序,待排序的数组需要按照不寻常的标准进行排序,那么就应该使用这个函数。boolusort(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"))9.uasort使用用户自定义的比较函数来对数组中的值进行排序并保持索引关联booluasort(array&$array,callable$value_compare_func)10.uksort使用用户自定义的比较函数对数组中的键进行排序booluksort(array&$array,callable$key_compare_func)11.natcasesort自然排序不区分大小写字母(字母排列后数字排列),保持key-value关联associatedboolnatsort(array&$array)13.shuffleThis函数洗牌(随机排列单元格的顺序)一个数组。键值未关联boolshuffle(array&$array)
