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"]  Array
            (
                [name] => 李四
                [age] => 18
            )
        [1] => Array
            (
                [name] => 张三
                [age] => 20
            )
        [2] => Array
            (
                [name] => 王五
                [age] => 22
            )
    )
    */

四、结语

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

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/197054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 单片机打印函数

    单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python实现计算阶乘的函数

    本文将介绍如何使用Python定义函数fact(n),计算n的阶乘。 一、什么是阶乘 阶乘指从1乘到指定数之间所有整数的乘积。如:5! = 5 * 4 * 3 * 2 * 1 = …

    编程 2025-04-29

发表回复

登录后才能评论