zoukankan      html  css  js  c++  java
  • PHP排序函数

      PHP中提供了很多排序方法:sort  rsort asort arsort krsort ksort uasort uksort usort natcasesort natsort  shuffle array_multisort。PHP官网文档做了很好的说明。这些数组排序函数功能差异体现在以下几个方面:排序后是否改变键值(函数名中有没有字母a)、按照key或value排序(函数命中有没有字母k)、升序或降序(函数名中有没有字母r)、是否为用户自定义(函数名中有没有字母u)。函数natcasesort、natsort、shuffle、array_multisort比较特殊。

      shuffle函数实现随机排序。array_multisort是一个功能强大的函数,可以对多个数组实现排序。natsort和natcasesort分别实现自然排序和区分大小写的自然排序,自php5.4版本开始,asort函数完全可以实现这两个函数的功能。

      结合一下这张图,便可一目了然:

      这里有点让人迷惑的是PHP的几种排序参数:

    • SORT_REGULAR
    • SORT_NUMERIC
    • SORT_STRING
    • SORT_LOCALE_STRING
    • SORT_NATURAL
    • SORT_FLAG_CASE

      SORT_NUMBER和SORT_STRING都是把值转化为对应的格式,然后再比较,SORT_NUMBER按值的大小来比较,SORT_STRING类型按照ascill值的大小挨个比较。这里容易让人产生疑惑的是SORT_REGULAR、SORT_NATTURAL、SORT_STRING三者的区别,SORT_REGULAR不进行类型转化,直接比较。比较的结果会按照类型分为几组,每组内的值会根据类型来选择相应的排序方法。SORT_NATTURAL与SORT_STRING类似,唯一的区别是,在遇到img2、img10、img20这种情况下,SORT_NATTURAL排序会更人性化,排序结果为:img2、img10、img20。而string不会考虑值里面的数字,排序结果为:img10、img2、img20。

      

  • 相关阅读:
    Twitter OA prepare: Rational Sum
    Java: Best Way to read a file
    Summary: gcd最大公约数、lcm最小公倍数算法
    Twitter OA prepare: Flipping a bit
    Twitter OA prepare: Equilibrium index of an array
    echo -e 参数
    openwrt 添加luci选项
    基于TLS的EAP 认证方法
    linux命令 dirname
    freeradius 错误: error:140890C7:SSL routines:ssl3_get_client_certificate:peer did not return a certificate
  • 原文地址:https://www.cnblogs.com/smilealgernon/p/3076118.html
Copyright © 2011-2022 走看看