当前位置:首页 > 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. 根据外部条件排序

php sort实现

$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);

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

标签: phpsort
分享给朋友:

相关文章

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现博客

php实现博客

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

php 线程实现

php 线程实现

PHP 线程实现方法 PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式: 使用 pthreads 扩展 pthreads 是一个 PHP 扩展,允许在 PHP 中…

php数据库实现

php数据库实现

PHP 连接 MySQL 数据库 使用 mysqli 扩展连接 MySQL 数据库: <?php $servername = "localhost"; $username = "usernam…

php实现投票

php实现投票

PHP实现投票功能 数据库设计 创建数据库表存储投票数据,例如: CREATE TABLE `votes` ( `id` int(11) NOT NULL AUTO_INCREMENT,…