了解PHP函数中的数组排序方法
PHP提供了多种数组排序方法,可以对数组进行升序、降序、自定义规则等排序,以下是对常用的PHP数组排序方法进行介绍。
一、sort()函数
可以使用sort()函数对数组进行升序排序,该函数会重置数组的指针。
语法:sort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(3, 1, 2, 5, 4); sort($array); print_r($array);
输出结果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
二、rsort()函数
可以使用rsort()函数对数组进行降序排序,该函数会重置数组的指针。
语法:rsort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(3, 1, 2, 5, 4); rsort($array); print_r($array);
输出结果:
Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
三、asort()函数
可以使用asort()函数对数组进行升序排序,不过该函数会保留数组的键名,而且键与值的关联不会丢失。
语法:asort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(
"D" => "PHP",
"A" => "Java",
"C" => "Python",
"B" => "C"
);
asort($array);
print_r($array);
输出结果:
Array
(
[B] => C
[A] => Java
[D] => PHP
[C] => Python
)
四、arsort()函数
可以使用arsort()函数对数组进行降序排序,不过该函数会保留数组的键名,而且键与值的关联不会丢失。
语法:arsort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(
"D" => "PHP",
"A" => "Java",
"C" => "Python",
"B" => "C"
);
arsort($array);
print_r($array);
输出结果:
Array
(
[C] => Python
[D] => PHP
[A] => Java
[B] => C
)
五、ksort()函数
可以使用ksort()函数按键名对数组进行升序排序,同样的该函数保留数组的键名,而且键与值的关联不会丢失。
语法:ksort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(
"D" => "PHP",
"A" => "Java",
"C" => "Python",
"B" => "C"
);
ksort($array);
print_r($array);
输出结果:
Array
(
[A] => Java
[B] => C
[C] => Python
[D] => PHP
)
六、krsort()函数
可以使用krsort()函数按键名对数组进行降序排序,同样的该函数保留数组的键名,而且键与值的关联不会丢失。
语法:krsort($array)
参数:$array 必须,要排序的数组
示例:
$array = array(
"D" => "PHP",
"A" => "Java",
"C" => "Python",
"B" => "C"
);
krsort($array);
print_r($array);
输出结果:
Array
(
[D] => PHP
[C] => Python
[B] => C
[A] => Java
)
七、uasort()函数
可以使用uasort()函数自定义回调函数对数组进行排序,同样的该函数保留数组的键名,而且键与值的关联不会丢失。
语法:uasort($array, $cmp_function)
参数:$array 必须,要排序的数组;$cmp_function 必须,回调函数名(请自定义)
示例:
function cmp($a, $b)
{
if ($a > $b) {
return 1;
} else if ($a < $b) {
return -1;
} else {
return 0;
}
}
$array = array(3, 1, 2, 5, 4);
uasort($array, "cmp");
print_r($array);
输出结果:
Array
(
[1] => 1
[2] => 2
[0] => 3
[4] => 4
[3] => 5
)
以上就是常用的PHP数组排序方法,希望对大家的PHP开发有所帮助。
