php+实现数组排序的方法
在PHP中,排序是我们日常编程中经常需要用到的操作之一,针对数组的排序,PHP提供了多种排序函数来帮助我们完成该任务。
接下来我们就来介绍几种常见的PHP数组排序方法。
- sort函数
sort函数是PHP内置的排序函数之一,可以对数组进行升序排序,也可以对关联数组进行排序。
sort函数的语法为:
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,可以用于指定排序方式,如:
- SORT_REGULAR - 默认的排序方式。把每一项按照普通的方式进行比较。
- SORT_NUMERIC - 把每一项按照数字方式进行比较。
- SORT_STRING - 把每一项按照字符串方式进行比较。
- SORT_LOCALE_STRING - 把每一项按照本地化的字符串方式进行比较。
- SORT_NATURAL - 把每一项按照自然排序方式进行比较。
- SORT_FLAG_CASE - 只有在和SORT_STRING或SORT_NATURAL一起使用的时候才有效。不区分大小写的方式进行排序。
示例代码:
$numbers = array(1,3,2,5,4); sort($numbers); print_r($numbers);
输出结果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
- rsort函数
rsort函数是sort函数的逆序排序函数,也可以对数组进行降序排序。
rsort函数的语法为:
bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,表示排序的方式,具体含义同sort函数。
示例代码:
$numbers = array(1,3,2,5,4); rsort($numbers); print_r($numbers);
输出结果:
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
- asort函数
asort函数可以对关联数组进行升序排序,但是保留了原始键的关联性,即键值会随之变动。
asort函数的语法为:
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,表示排序的方式,具体含义同sort函数。
示例代码:
$numbers = array("a"=>1,"c"=>3,"b"=>2,"e"=>5,"d"=>4); asort($numbers); print_r($numbers);
输出结果:
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 [e] => 5 )
- arsort函数
arsort函数是asort函数的逆序排序函数,也可以对关联数组进行降序排序。
arsort函数的语法为:
bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,表示排序的方式,具体含义同sort函数。
示例代码:
$numbers = array("a"=>1,"c"=>3,"b"=>2,"e"=>5,"d"=>4); arsort($numbers); print_r($numbers);
输出结果:
Array ( [e] => 5 [d] => 4 [c] => 3 [b] => 2 [a] => 1 )
- ksort函数
ksort函数可以对关联数组进行升序排序,但是保留了原始键的关联性,即键值不会随之变动。
ksort函数的语法为:
bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,表示排序的方式,具体含义同sort函数。
示例代码:
$numbers = array("a"=>1,"c"=>3,"b"=>2,"e"=>5,"d"=>4); ksort($numbers); print_r($numbers);
输出结果:
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 [e] => 5 )
- krsort函数
krsort函数是ksort函数的逆序排序函数,也可以对关联数组进行降序排序。
krsort函数的语法为:
bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
其中,array为要排序的数组,sort_flags为可选参数,表示排序的方式,具体含义同sort函数。
示例代码:
$numbers = array("a"=>1,"c"=>3,"b"=>2,"e"=>5,"d"=>4); krsort($numbers); print_r($numbers);
输出结果:
Array ( [e] => 5 [d] => 4 [c] => 3 [b] => 2 [a] => 1 )