首页 > PHP开发 > php数组(3):php数组的几个排序函数

php数组(3):php数组的几个排序函数

作者: 分类:PHP开发 点击: 3,297 次

    php数组是我们学习php知识的一个重点单元,因为,在我们进行php编程时,php数组几乎是无处不在的。在使用php数组时,由于某种需求,我们可能需要对php数组进行重新排序。本章,我们就来了解一下php数组的几个常用排序函数。

    1、sort() 与 rsort() :

    这个函数的排序是正好相反的。sort函数是把php数组里的单元从低到高进行排序,而rsort函数是从高到低地进行排序。

    语法:

    sort(array,sorttype)

    参数1:数组;

    参数2:可选。规定如何排列数组的值。可能的值:

    SORT_REGULAR - 默认。以它们原来的类型进行处理。
    SORT_NUMERIC - 把值作为数字来处理
    SORT_STRING - 把值作为字符串来处理
    SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。

    sort在排序过程中,会对数组的每个单元进行比较,当要比较可能包含有数字 2 和 12 的字符串时,从数字角度看,2 要小于 12,但是作为字符串,"12"却要小于"2"。所以,参数2的值关系到php数组的自然排序效果。

    sort函数和rsort函数,会在排序过中,为数组中的每个单元重新取个键名,原键名将被删除掉。

    案例:

    $arr = array(255,'25',78,'13',5,'28',7,56,23);
    sort($arr);
    print_r($arr);

    输出结果:

    Array ( [0] => 5 [1] => 7 [2] => 13 [3] => 23 [4] => 25 [5] => 28 [6] => 56 [7] => 78 [8] => 255 )

    上例中,sort函数如果添加第2个参数为SORT_STRING,排序就会发生变化:

    $arr = array(255,'25',78,'13',5,'28',7,56,23);
    sort($arr,SORT_STRING); //以字符串形式排序
    print_r($arr);

    输出结果:

    Array ( [0] => 13 [1] => 23 [2] => 25 [3] => 255 [4] => 28 [5] => 5 [6] => 56 [7] => 7 [8] => 78 )

    2、asort() 与 arsort()

    asort() 函数,对php数组的各单元进行从低到高排序,并保持各单元的索引关系。
    arsort() 函数,对php数组的各单元进行从高到低排序,并保持各单元的索引关系。

    也可有第2个参数,同sort函数。

    例:

    $arr = array(255,'25',78,'13',5,'28',7,56,23);
    print_r($arr); //打印原数组
    asort($arr,SORT_STRING);
    print_r($arr); //打印排序后的数组

    输出结果:

    Array ( [0] => 255 [1] => 25 [2] => 78 [3] => 13 [4] => 5 [5] => 28 [6] => 7 [7] => 56 [8] => 23 ) 原数组

    Array ( [3] => 13 [8] => 23 [1] => 25 [0] => 255 [5] => 28 [4] => 5 [7] => 56 [6] => 7 [2] => 78 ) 排序后的数组

    从输出的结果,我们可以看出,排序后的数组,保留了原数组的各单元的键名不变。

    3、ksort() 与 krsort()

    ksort()函数,对php数组的单元按照键名从低到高进行排序。
    krsort()函数,对php数组的单元按照键名从高到低进行排序。

    例:

    $arr = array(3=>'gao',1=>'bbb',7=>'eee',4=>'ccc');
    ksort($arr);
    print_r($arr); //打印排序后的数组

    输出结果:

    Array ( [1] => bbb [3] => gao [4] => ccc [7] => eee )

    结果中可以看到,键名已经是按从小到大的排序了。

    4、shuffle()

    shuffle()函数,用来打乱php数组,让各单元按随机的顺序进行重新排列。

    例:

    $arr = array(1,2,3,4,5,6,7,8,9);
    shuffle($arr);
    print_r($arr); //打印排序后的数组

    输出结果:

    Array ( [0] => 4 [1] => 5 [2] => 1 [3] => 9 [4] => 6 [5] => 7 [6] => 2 [7] => 3 [8] => 8 )

    可见数组的排序已被打乱,而且每刷新页面一次,数组将被再次打乱。

    5、array_reverse()

    array_reverse()函数,是将原php数组中的所有元素的顺序倒过来,创建一个新的数组并返回。

    array_reverse()函数可有2个参数,如果第2个参数存在,并被指定为true,则php数组元素的键名保持不变,否则键名将丢失。如;

    $arr = array(1,2,3,4,5,6,7,8,9);
    $bb = array_reverse($arr);
    print_r($bb); //打印排序后的数组

    输出结果:

    Array ( [0] => 9 [1] => 8 [2] => 7 [3] => 6 [4] => 5 [5] => 4 [6] => 3 [7] => 2 [8] => 1 )

    php数组的常用排序函数就介绍到这里吧,虽然很少用到,但是还是有必要掌握一下的。



文章作者:honor
本文地址:http://wanlimm.com/77201808086508.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

一条回应:“php数组(3):php数组的几个排序函数”

  1. avatar 2279525437说道:

    下载视频,没有几分,发几条消息!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.