数组排序array_multisort

Posted 集君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组排序array_multisort相关的知识,希望对你有一定的参考价值。

array_multisort --对多个数组或者多维数组进行排序[参考:secure.php.net]

说明:

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )

array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。

参数
  • ==array1== 要排序的array
  • ==array1_sort_order== 之前array参数要排列的顺序。SORT_ASC按照上升顺序排序,SORT_DESC按照下降顺序排序。此参数可以和==array_sort_flags== 互换,也可以完成删除,默认是SORT_ASC
  • ==array1_sort_flags== 为array参数设定选项:
    排序类型标志:
    SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
    SORT_NUMERIC - 按照数字大小比较
    SORT_STRING - 按字符串比较
    SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。它会使用locale信息,可以通过setlocale()修改此信息。
    SORT_NATURAL - 以字符串的“自然排序”,类似natsort()
    SORT_FLAG_CASE - 可以组合(按位或OR)SORT_STRING或者SORT_NATURAL 大小写不敏感的方式排序字符串。
    参数可以和array1_sort_order交换或者省略,默认情况下是SORT_REGULAR。
返回值

成功时返回TRUE,或失败时FALSE

实例:
$nums = array(1,4,5,2,9);
$str = array("a","g","i","z","k");
array_multisort($nums , SORT_DESC , $str);
print_r($nums);
print_r($str);
$arr = array(
    array("spid"=>"1","time"=>100),
    array("spid"=>"1","time"=>105),
    array("spid"=>"2","time"=>104),
    array("spid"=>"1","time"=>102),
    array("spid"=>"2","time"=>101),
);
$spids = array();
$times = array();
foreach ($arr as $key => $value) {
    $spids[] = $value[‘spid‘];
    $times[] = $value[‘time‘];
}
//array_multisort($times,SORT_DESC ,$spids,SORT_ASC , $arr );
//先按照spids列降序,再按照times列升序
array_multisort($spids,SORT_ASC ,$times,SORT_DESC , $arr );
//array_multisort($spids,SORT_DESC , $arr );
print_r($arr);
输出:

9 5 4 2 1
k i g z a
["1":105,"1":102,"1":100,"2":104,"2":101]

以上是关于数组排序array_multisort的主要内容,如果未能解决你的问题,请参考以下文章

PHP array_multisort() 函数 实现数组排序

数组排序array_multisort

php 对多维数组排序array_multisort

array_multisort 对关联数组进行排序的问题 PHP

PHP数组排序函数array_multisort()函数详解

PHP数组array_multisort排序详解