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

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…

php 实现面包屑导航

php 实现面包屑导航

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

php实现多态

php实现多态

多态的概念 多态是面向对象编程的三大特性之一,指同一个方法在不同类中有不同实现方式。PHP通过继承和接口实现多态。 通过继承实现多态 父类定义方法,子类重写该方法实现不同行为: class…