在PHP中提供的几个数组排序函数,函数的命名有下面一些特点:
- 数组变量都被作为排序函数的参数,在排序操作完成之后,排序之后的结果存储于数组变量本身,函数的返回值为bool类型。
- 函数名中出现a(association),表示在按值排序的过程中,保持key=>value的对应关系不变。
- 函数名中出现k(key),表示在按值排序的过程中按照数组key而不是数组的值排序。
- 函数名中出现r(reverse),表示按照跟不加r的相反的顺序排列。
- 函数名中出现u(user defined),表示使用用户自定义函数排序,被用户自定义函数的逻辑是:如果参数1<参数2,则返回负数,并按照升序排列。
常见函数如下:
sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。
asort:对数组进行排序并保持索引关系 。
arsort:对数组进行逆向排序并保持索引关系 。
ksort:对数组按照键名排序,保留键名到数据的关联 。
krsort:对数组按照键名逆向排序,保留键名到数据的关联 。
rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。
asort:对数组进行排序并保持索引关系 。
arsort:对数组进行逆向排序并保持索引关系 。
ksort:对数组按照键名排序,保留键名到数据的关联 。
krsort:对数组按照键名逆向排序,保留键名到数据的关联 。
各函数均可以有两个参数 ,第一个参数是必须,第二个参数是可选参数,以sort() 为例如下:
函数:sort(array, [sort type])
说明:sort()函数按升序对指定数组(第一个参数)进行排序。
sort函数第二参数作用为指定排序类型,是可选参数,可能的值为:
SORT_REGULAR: 默认值,不改变类型进行排序;
SORT_NUMERIC: 把值作为数字进行排序;
SORT_STRING: 把值作为字符串进行排序;
说明:sort()函数按升序对指定数组(第一个参数)进行排序。
sort函数第二参数作用为指定排序类型,是可选参数,可能的值为:
SORT_REGULAR: 默认值,不改变类型进行排序;
SORT_NUMERIC: 把值作为数字进行排序;
SORT_STRING: 把值作为字符串进行排序;
用户可以自定义函数进行排序:
usort(array,function);
如:
<?php
function defined_sort($arg1, $arg2){
if ($arg1 == $arg2) return 0;
return ($arg1 < $arg2) ? -1 : 1;
}
$arr = array("D", "E","C","D");
usort($arr, "defined_sort");
?>