当前位置:首页 > PHP

php sort 实现

2026-01-29 09:26:51PHP

PHP 数组排序实现

PHP 提供了多种内置函数对数组进行排序,每种函数适用于不同的排序需求和数组类型。以下是常见的排序方法及其实现方式:

升序排序(sort

对数组值进行升序排序,键名会被重新索引:

$array = [3, 1, 4, 2];
sort($array);
print_r($array); // 输出: [1, 2, 3, 4]

降序排序(rsort

对数组值进行降序排序,键名会被重新索引:

$array = [3, 1, 4, 2];
rsort($array);
print_r($array); // 输出: [4, 3, 2, 1]

保持键值关联的升序排序(asort

对数组值进行升序排序,但保持键值与元素的关联:

$array = ["b" => 2, "a" => 1, "c" => 3];
asort($array);
print_r($array); // 输出: ["a" => 1, "b" => 2, "c" => 3]

保持键值关联的降序排序(arsort

对数组值进行降序排序,但保持键值与元素的关联:

$array = ["b" => 2, "a" => 1, "c" => 3];
arsort($array);
print_r($array); // 输出: ["c" => 3, "b" => 2, "a" => 1]

按键名升序排序(ksort

对数组的键名进行升序排序:

$array = ["b" => 2, "a" => 1, "c" => 3];
ksort($array);
print_r($array); // 输出: ["a" => 1, "b" => 2, "c" => 3]

按键名降序排序(krsort

对数组的键名进行降序排序:

$array = ["b" => 2, "a" => 1, "c" => 3];
krsort($array);
print_r($array); // 输出: ["c" => 3, "b" => 2, "a" => 1]

自然排序(natsort

对字符串数组进行自然排序(如人类理解的顺序):

$array = ["img10", "img2", "img1"];
natsort($array);
print_r($array); // 输出: ["img1", "img2", "img10"]

自定义排序(usort / uasort / uksort

通过回调函数自定义排序逻辑:

$array = [3, 1, 4, 2];
usort($array, function($a, $b) {
    return $a <=> $b; // 升序排序
});
print_r($array); // 输出: [1, 2, 3, 4]

多维数组排序

对多维数组按指定字段排序:

php sort 实现

$users = [
    ["name" => "Alice", "age" => 30],
    ["name" => "Bob", "age" => 25],
    ["name" => "Charlie", "age" => 35]
];
usort($users, function($a, $b) {
    return $a["age"] <=> $b["age"]; // 按年龄升序
});
print_r($users);

注意事项

  • 默认的 sortrsort 会重置键名,适合索引数组。
  • asortarsort 适合关联数组,保留键值关系。
  • 自然排序(natsort)适用于包含数字的字符串排序。
  • 自定义排序(usort)可以实现复杂的排序逻辑。

标签: phpsort
分享给朋友:

相关文章

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现分类

php实现分类

PHP实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php 无限分类的实现

php 无限分类的实现

无限分类的实现方法 无限分类通常用于构建树形结构数据,如商品分类、多级菜单等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 邻接列表是最简单的实现方式,通过在每个节点中存…

php 实现面包屑导航

php 实现面包屑导航

实现面包屑导航的方法 面包屑导航(Breadcrumb Navigation)是一种常见的网站导航方式,用于显示用户当前页面的路径。以下是几种在 PHP 中实现面包屑导航的方法。 基于 URL 路径…