📅  最后修改于: 2023-12-03 14:54:42.219000             🧑  作者: Mango
排序是计算机科学中非常重要的一种算法,它可以将一个乱序的数据集合按照一定规则重新排列,使得数据有着更好的可读性和可操作性。在 PHP 中,我们常常需要对数组进行排序。
PHP 中提供了以下几种数组排序函数:
sort()
函数可以按照升序重新排列数组中的元素,键名不变。
<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
foreach ($cars as $car) {
echo $car . "<br>";
}
?>
输出:
BMW
Toyota
Volvo
rsort()
函数可以按照降序重新排列数组中的元素,键名不变。
<?php
$cars = array("Volvo", "BMW", "Toyota");
rsort($cars);
foreach ($cars as $car) {
echo $car . "<br>";
}
?>
输出:
Volvo
Toyota
BMW
asort()
函数可以按照升序重新排列数组中的元素,同时保留键名。
<?php
$cars = array("Volvo" => 2, "BMW" => 1, "Toyota" => 3);
asort($cars);
foreach ($cars as $car => $value) {
echo $car . " - " . $value . "<br>";
}
?>
输出:
BMW - 1
Volvo - 2
Toyota - 3
arsort()
函数可以按照降序重新排列数组中的元素,同时保留键名。
<?php
$cars = array("Volvo" => 2, "BMW" => 1, "Toyota" => 3);
arsort($cars);
foreach ($cars as $car => $value) {
echo $car . " - " . $value . "<br>";
}
?>
输出:
Toyota - 3
Volvo - 2
BMW - 1
ksort()
函数可以按照升序重新排列数组中的元素,同时按照键名排序。
<?php
$cars = array("Volvo" => 2, "BMW" => 1, "Toyota" => 3);
ksort($cars);
foreach ($cars as $car => $value) {
echo $car . " - " . $value . "<br>";
}
?>
输出:
BMW - 1
Toyota - 3
Volvo - 2
krsort()
函数可以按照降序重新排列数组中的元素,同时按照键名排序。
<?php
$cars = array("Volvo" => 2, "BMW" => 1, "Toyota" => 3);
krsort($cars);
foreach ($cars as $car => $value) {
echo $car . " - " . $value . "<br>";
}
?>
输出:
Volvo - 2
Toyota - 3
BMW - 1
如果默认的排序方式不能满足我们的需求,我们可以使用自定义排序函数对数组进行排序。
自定义排序函数需要返回一个整数值作为比较结果,其规定如下:
$a < $b
,则返回一个小于 0 的整数;$a = $b
,则返回 0;$a > $b
,则返回一个大于 0 的整数。例如,我们有一个存储了多个人姓名和年龄的数组:
$people = array(
"Peter" => "35",
"Ben" => "37",
"Joe" => "43"
);
如果我们想要按照年龄升序排序,则可以使用以下自定义排序函数:
function sortByAge($a, $b) {
return $a - $b;
}
使用 usort() 函数调用自定义排序函数:
usort($people, "sortByAge");
排序后的数组:
Array
(
[Peter] => 35
[Ben] => 37
[Joe] => 43
)
以上就是 PHP 中的数组排序函数和自定义排序方式的使用方法,掌握好这些常用的排序函数,能够让我们更加高效地处理数组数据。