您的位置:

PHP中使用sort函数对数组进行排序

一、sort函数介绍

sort() 是一个 PHP 函数,用于对数组进行升序排列,相反,rsort() 函数则是降序排列。sort() 函数使用内部算法对数组处理,而不是使用外来程序库。

    $arr = array(5,3,7,1,9);
    sort($arr);
    print_r($arr);
    /*输出:
    Array
    (
        [0] => 1
        [1] => 3
        [2] => 5
        [3] => 7
        [4] => 9
    )
    */

二、sort函数的参数

sort() 函数有两个必需参数,其中第一个参数是待排序的数组,第二个参数是可选的排序方式。

  • 1表示升序排列,即从小到大排序;
  • 0或未传入参数表示降序排列,即从大到小排序。
    $arr = array(5,3,7,1,9);
    sort($arr, 1);
    print_r($arr);
    /*输出:
    Array
    (
        [0] => 1
        [1] => 3
        [2] => 5
        [3] => 7
        [4] => 9
    )
    */
    
    $arr = array(5,3,7,1,9);
    sort($arr, 0);
    print_r($arr);
    /*输出:
    Array
    (
        [0] => 9
        [1] => 7
        [2] => 5
        [3] => 3
        [4] => 1
    )
    */

三、sort函数对字符串/中文字符串/多维数组的排序

1.字符串

sort() 函数也可以使用在字符串中,可以进行简单的字母排序,将单词按字母顺序重排。例如:

    $str = "hello world";
    $arr = str_split($str);
    sort($arr);
    $str = implode("", $arr);
    echo $str;
    /*输出:
    dehllloorw
    */

2.中文字符串

当需要对中文字符串进行排序时,需要使用到 ICU 的支持。可以使用 intl 扩展来实现,具体代码如下:

    if (extension_loaded("intl")) {
        $arr = array("北京", "上海", "深圳", "广州");
        $arrLenth = [];
        foreach ($arr as $value) {
            $arrLenth[] = grapheme_strlen($value);
        }
        array_multisort($arrLenth, SORT_ASC, $arr);
        print_r($arr);
    } else {
        echo "intl扩展未安装";
    }
    /*输出:
    Array
    (
        [0] => 北京
        [1] => 广州
        [2] => 上海
        [3] => 深圳
    )
    */

3.多维数组

多维数组的排序可以使用 uasort() 函数和 usort() 函数,两者的区别在于回调函数的传参方式不同。usort() 传参只有两个,比较的两个元素,而 uasort() 则传3个参数,第一个是待排序的数组,第二个是比较的两个元素,第三个则是比较方式。以下代码为根据数组某个项进行排序示例:

    $arr = array(
        array("name" => "张三", "age" => 20),
        array("name" => "李四", "age" => 18),
        array("name" => "王五", "age" => 22),
    );
    usort($arr, function ($a, $b) {
        if ($a["age"] == $b["age"]) {
            return 0;
        }
        return ($a["age"] < $b["age"]) ? -1 : 1;
    });
    print_r($arr);
    /*输出:
    Array
    (
        [0] => Array
            (
                [name] => 李四
                [age] => 18
            )
        [1] => Array
            (
                [name] => 张三
                [age] => 20
            )
        [2] => Array
            (
                [name] => 王五
                [age] => 22
            )
    )
    */

四、结语

sort() 函数是 PHP 中实现简单快捷的数组排序的常用函数,但使用时需要注意在字符串/中文字符串/多维数组的排序情况下,需要特别处理,才能实现符合需求的排序。

PHP中使用sort函数对数组进行排序

2023-05-11
php的二维数组排序,php二维数组按某个键值排序

2022-11-17
php对多为数组某个值进行排序,php数组键值排序

2022-11-17
PHP sort函数:用于数组排序的基本方法

php sort()函数是一个用于对数组排序的常用方法。在应用程序设计中,它经常用于将数组中的元素按升序或降序排列。 一、sort()函数的基本用法 sort()函数可以对数组进行升序排序。下面是一个

2023-12-08
php对键值进行排序,php排序函数

2022-11-25
使用Matlab Sort函数进行数组排序

2023-05-19
sort函数php,sort函数c语言

2022-12-02
php中的排序函数,php中的排序函数代码

2022-11-18
PHP数组排序

2023-05-11
PHP工程师必备:掌握数组排序sort方法的使用

2023-05-11
php二维数组按某个键名排序,php数组键值排序

2022-11-22
使用asort函数对PHP数组进行升序排序

PHP是一门功能强大的语言,数组是PHP中十分常用的数据结构之一。在实际开发中,经常需要对数组进行排序。PHP提供了多个函数用于对数组进行排序,其中asort函数可以实现对数组进行升序排序。 一、as

2023-12-08
php把二维数组排序(php对二维数组排序)

2022-11-15
PHP数组重新排序

2023-05-11
php升序排列,php数组升序排列

2022-11-28
phpsort,php sort函数输出

2022-11-25
Python sort函数:如何对序列进行排序?

2023-05-12
使用usort进行PHP数组排序

2023-05-11
在php中排序多维数组,二维数组排序php

2022-11-27
php数据库排序,php选择排序代码

2022-11-23