php排序实现
PHP 排序实现方法
PHP 提供了多种内置函数和自定义方法来实现数组排序,以下为常用实现方式:
内置排序函数
-
sort()
对数组进行升序排序(重新索引数字键):$array = [3, 1, 4]; sort($array); // 结果:[1, 3, 4] -
rsort()
对数组进行降序排序:rsort($array); // 结果:[4, 3, 1] -
asort()
保持键值关联的升序排序:
$assoc = ["b" => 2, "a" => 1]; asort($assoc); // 结果:["a" => 1, "b" => 2] -
ksort()
按键名升序排序:ksort($assoc); // 结果:["a" => 1, "b" => 2]
自定义排序
-
usort()
通过用户定义的回调函数排序:
$users = [ ["name" => "Alice", "age" => 30], ["name" => "Bob", "age" => 25] ]; usort($users, function($a, $b) { return $a['age'] <=> $b['age']; }); // 按年龄升序排序 -
uksort()
自定义键名排序逻辑:uksort($array, function($k1, $k2) { return strcmp($k1, $k2); });
多维数组排序
使用 array_multisort() 处理多维数据:
$data = [
["name" => "Tom", "score" => 80],
["name" => "Jerry", "score" => 90]
];
array_multisort(array_column($data, 'score'), SORT_DESC, $data);
// 按分数降序排列
自然排序
natsort() 实现自然顺序排序(如:img1, img2, img10):
$files = ["img10", "img2"];
natsort($files);
// 结果:["img2", "img10"]
性能注意事项
- 内置函数比自定义排序更快,优先使用
sort()等函数。 - 对大数组避免多次排序,可组合
array_column()与array_multisort()提升效率。
通过组合这些方法,可覆盖大多数 PHP 排序场景需求。






