php sort 实现
PHP 数组排序实现
PHP 提供了多种内置函数来实现数组排序,可以根据需求选择合适的排序方式。
升序排序
使用 sort() 函数对数组进行升序排序:
$numbers = [4, 2, 8, 6];
sort($numbers);
print_r($numbers);
// 输出: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
降序排序
使用 rsort() 函数对数组进行降序排序:
$numbers = [4, 2, 8, 6];
rsort($numbers);
print_r($numbers);
// 输出: Array ( [0] => 8 [1] => 6 [2] => 4 [3] => 2 )
关联数组按键排序
使用 ksort() 对关联数组按键进行升序排序:
$age = ["Peter" => 35, "Ben" => 37, "Joe" => 43];
ksort($age);
print_r($age);
// 输出: Array ( [Ben] => 37 [Joe] => 43 [Peter] => 35 )
关联数组按值排序
使用 asort() 对关联数组按值进行升序排序:
$age = ["Peter" => 35, "Ben" => 37, "Joe" => 43];
asort($age);
print_r($age);
// 输出: Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
自定义排序
使用 usort() 实现自定义排序逻辑:
function compare($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$numbers = [4, 2, 8, 6];
usort($numbers, "compare");
print_r($numbers);
// 输出: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
多维数组排序
对多维数组按指定键排序:
$users = [
['name' => 'Tom', 'age' => 20],
['name' => 'Ann', 'age' => 18],
['name' => 'Bob', 'age' => 22]
];
usort($users, function($a, $b) {
return $a['age'] - $b['age'];
});
print_r($users);
// 输出: Array ( [0] => Array ( [name] => Ann [age] => 18 ) [1] => Array ( [name] => Tom [age] => 20 ) [2] => Array ( [name] => Bob [age] => 22 ) )
自然排序
使用 natsort() 实现自然顺序排序(字母数字混合):
$images = ["img12.png", "img10.png", "img2.png", "img1.png"];
natsort($images);
print_r($images);
// 输出: Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
PHP 的排序函数会根据不同的场景提供灵活的排序方式,开发者可以根据实际需求选择合适的函数。







