zoukankan      html  css  js  c++  java
  • php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)

    测试环境:php5.3.29


    sort_flags 可以用以下值改变排序的行为:

    排序类型标记:

    • SORT_REGULAR - 正常比较单元(不改变类型)
    • SORT_NUMERIC - 单元被作为数字来比较
    • SORT_STRING - 单元被作为字符串来比较
    • SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
    • SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
    • SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。PHP 5.4.0 中新增的。

    sort($arr[,$sort_flags=SORT_REGULAR]

    以键值升序排序。(注意。会删掉键名然后建立数字索引。需要保留键名可以用asort函数)

    (值一样的元素,实际在排序函数中也交换了位置,由于值一样所以看不出来但还是交换了的。)

    rsort(同上)

    以键值降序排序。(注意。同上也会删掉键名,需要保留键名可以用arsort函数)

    usort($arr, $cmp_function)

    自定函数以键值排序。(注意。同上键名也没了,需要保留键名可以用uasort函数)

    cmp_function($a, $b)的两个参数是键值。返回正数,将参数1放后面;0不变;负数,将参数2放后面。


    asort($arr[,$sort_flags=SORT_REGULAR))

    和sort一样,除了保留键名关联。

    arsort(同上)

    和rsort一样,除了保留键名关联。

    uasort($arr, $cmp_function)

    和usort一样。除了保留键名的关联。


    ksort($arr[,$sort_flags=SORT_REGULAR))

    以键名升序排序。

    krsort(同上)

    以键名降序排序。

    uksort($arr, $cmp_function)

    $cmp_function($a, $b)的两个参数是键名。返回处理和usort一样。


    natsort($arr)

    "natural(自然)排序"  按数值升序。

    1.如升序时 2在13前。

    2.大小写敏感,如元素 'img1' 'img2' 'Img3' 会排序成  Img3 img1 img2

    natcasesort($arr)

    natsort($arr)忽略大小写的版本。


    array_multisort($arr1[,$arr2...$arrN,$sort_flags=SORT_REGULAR)

    关联(字符串)键名不变,数字索引会重新产生。

    将$arr2~n的数组的元素,按照$arr1中的移动顺序,作出同样的移动。

    如$arr1 = array(2, 3, 1);

    变成了 array(1, 2, 3);

    $arr2~n也会把 下标0放到下标1上;下标1元素 放到下标2上;下标2的放到下标0上;

  • 相关阅读:
    htm与html的区别
    CLR笔记:3.共享程序集合强命名程序集
    CLR笔记:5.基元,引用和值类型
    CLR笔记:13.数组
    CLR笔记:18.可空值类型
    正则表达式
    代码大全
    wcf的部署
    Json相关
    $.ready和onload
  • 原文地址:https://www.cnblogs.com/sweetXiaoma/p/6010603.html
Copyright © 2011-2022 走看看