Login
网站首页 > 文章中心 > 其它

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

作者:小编 更新时间:2023-08-01 09:10:03 浏览量:31人看过

第一段: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() 函数有两个必需参数,其中第一个参数是待排序的数组,第二个参数是可选的排序方式.

①.表示升序排列,即从小到大排序;

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函数对字符串/中文字符串/多维数组的排序

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



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


当需要对中文字符串进行排序时,需要使用到 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] => 深圳
)
*/




$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函数对数组进行排序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章