• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > PHP开发 > php数组(3):php数组的几个排序函数

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

    作者: 分类:PHP开发 点击: 61 次
    wordpress CMS主题:ssmay主题

      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
    本文时间:2018-08-08 08:36:43
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

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

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