当前位置:首页 > PHP

php sort实现

2026-02-14 14:37:26PHP

PHP 数组排序实现

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

1. 简单升序排序(sort)

$array = [3, 1, 4, 1, 5, 9, 2, 6];
sort($array);
print_r($array);

输出结果为升序排列的数组。

2. 简单降序排序(rsort)

$array = [3, 1, 4, 1, 5, 9, 2, 6];
rsort($array);
print_r($array);

输出结果为降序排列的数组。

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

$array = ['b' => 3, 'a' => 1, 'c' => 4];
asort($array);
print_r($array);

排序后保持键与值的关联关系。

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

$array = ['b' => 3, 'a' => 1, 'c' => 4];
arsort($array);
print_r($array);

排序后保持键与值的关联关系。

5. 按键名升序排序(ksort)

$array = ['b' => 3, 'a' => 1, 'c' => 4];
ksort($array);
print_r($array);

按照键名进行升序排序。

6. 按键名降序排序(krsort)

$array = ['b' => 3, 'a' => 1, 'c' => 4];
krsort($array);
print_r($array);

按照键名进行降序排序。

7. 自定义排序(usort)

function compare($a, $b) {
    if ($a == $b) return 0;
    return ($a < $b) ? -1 : 1;
}
$array = [3, 1, 4, 1, 5, 9, 2, 6];
usort($array, 'compare');
print_r($array);

通过自定义比较函数实现复杂排序逻辑。

8. 自然排序(natsort)

$array = ['img1.png', 'img10.png', 'img2.png'];
natsort($array);
print_r($array);

按照自然顺序排序,适合处理包含数字的字符串。

9. 不区分大小写的自然排序(natcasesort)

$array = ['Img1.png', 'img10.png', 'img2.png'];
natcasesort($array);
print_r($array);

忽略大小写的自然顺序排序。

10. 多维数组排序

$array = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Jane', 'age' => 22]
];
usort($array, function($a, $b) {
    return $a['age'] - $b['age'];
});
print_r($array);

通过自定义函数对多维数组进行排序。

11. 随机排序(shuffle)

$array = [1, 2, 3, 4, 5];
shuffle($array);
print_r($array);

随机打乱数组顺序。

12. 反向排序(array_reverse)

$array = [1, 2, 3, 4, 5];
$reversed = array_reverse($array);
print_r($reversed);

不改变原数组顺序,返回一个新数组。

13. 多条件排序

$array = [
    ['name' => 'John', 'age' => 25, 'score' => 80],
    ['name' => 'Jane', 'age' => 22, 'score' => 90],
    ['name' => 'Doe', 'age' => 25, 'score' => 70]
];
usort($array, function($a, $b) {
    if ($a['age'] == $b['age']) {
        return $b['score'] - $a['score'];
    }
    return $a['age'] - $b['age'];
});
print_r($array);

实现先按年龄升序,年龄相同再按分数降序的复杂排序。

14. 保留键名的随机排序

$array = ['a' => 1, 'b' => 2, 'c' => 3];
uksort($array, function() { return rand(-1, 1); });
print_r($array);

保持键名关联的随机排序。

15. 根据外部条件排序

$order = ['apple', 'orange', 'banana'];
$array = ['banana', 'apple', 'orange'];
usort($array, function($a, $b) use ($order) {
    return array_search($a, $order) - array_search($b, $order);
});
print_r($array);

按照预定义的外部顺序进行排序。

php sort实现

标签: phpsort
分享给朋友:

相关文章

php实现socket

php实现socket

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

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTM…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…