当前位置:首页 > 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]

多维数组排序

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

$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)可以实现复杂的排序逻辑。

php sort 实现

标签: phpsort
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…