当前位置:首页 > PHP

php 实现排序

2026-04-02 21:02:11PHP

PHP 实现数组排序的方法

PHP 提供了多种内置函数用于数组排序,根据需求可选择不同的排序方式。以下是常见的排序方法:

升序排序(sort)

sort() 函数对数组进行升序排序,重新索引键名(适用于索引数组):

$numbers = [4, 2, 8, 6];
sort($numbers);
print_r($numbers); // 输出: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )

降序排序(rsort)

rsort() 函数对数组进行降序排序:

$numbers = [4, 2, 8, 6];
rsort($numbers);
print_r($numbers); // 输出: Array ( [0] => 8 [1] => 6 [2] => 4 [3] => 2 )

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

asort() 对关联数组按值升序排序,保留键名:

php 实现排序

$age = ["Peter" => 35, "Ben" => 20, "Joe" => 43];
asort($age);
print_r($age); // 输出: Array ( [Ben] => 20 [Peter] => 35 [Joe] => 43 )

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

arsort() 对关联数组按值降序排序:

$age = ["Peter" => 35, "Ben" => 20, "Joe" => 43];
arsort($age);
print_r($age); // 输出: Array ( [Joe] => 43 [Peter] => 35 [Ben] => 20 )

按键名升序排序(ksort)

ksort() 根据键名对数组升序排序:

$age = ["Peter" => 35, "Ben" => 20, "Joe" => 43];
ksort($age);
print_r($age); // 输出: Array ( [Ben] => 20 [Joe] => 43 [Peter] => 35 )

按键名降序排序(krsort)

krsort() 根据键名对数组降序排序:

php 实现排序

$age = ["Peter" => 35, "Ben" => 20, "Joe" => 43];
krsort($age);
print_r($age); // 输出: Array ( [Peter] => 35 [Joe] => 43 [Ben] => 20 )

自然排序(natsort)

natsort() 使用自然顺序算法排序(适合含数字的字符串):

$files = ["img12.png", "img10.png", "img2.png"];
natsort($files);
print_r($files); // 输出: Array ( [2] => img2.png [1] => img10.png [0] => img12.png )

自定义排序(usort)

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

function cmp($a, $b) {
    if ($a == $b) return 0;
    return ($a < $b) ? -1 : 1;
}
$numbers = [4, 2, 8, 6];
usort($numbers, "cmp");
print_r($numbers); // 输出: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )

多维数组排序

使用 array_multisort() 处理多维数组:

$data = [
    ["name" => "John", "age" => 25],
    ["name" => "Jane", "age" => 22]
];
$ages = array_column($data, 'age');
array_multisort($ages, SORT_ASC, $data);
print_r($data);

注意事项

  • 排序函数多数直接修改原数组,而非返回新数组
  • 关联数组排序需根据需求选择 asortksort 系列函数
  • 对大量数据排序时,自定义函数可能影响性能

标签: php
分享给朋友:

相关文章

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 // 创建…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…

php实现推送

php实现推送

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

php 实现排名

php 实现排名

PHP 实现排名的方法 在 PHP 中实现排名功能通常涉及对数据进行排序、计算排名以及输出结果。以下是几种常见的实现方式: 基本数组排序排名 $scores = [85, 92, 78, 95, 8…