PHP数组排序函数

array_multisort:对多个数组或多维数组进行排序,可以一次对多个数组进行排序,或者根据一维或多维对多维数组进行排序。排序后字符串键名保持不变,数字键名会被重新索引。第一个参数为要排序的数组,第二参数为排序顺序标识,默认为SORT_ASC,第三个参数为排序类型标识,默认为SORT_REGULAR。最后为可选的多个数组,这些数组需要与第一个参数中的数组具有相同数量的元素。成功返回true,否则返回false。

asort:对数组进行排序并保持索引关系,接受两个参数,第一个为要进行排序的数组,第二个为可选的排序类型标识,默认为SORT_REGULAR。成功返回true,否则返回false。该函数区分大小写。

arsort:与asort唯一区别的是逆向排序。

sort:与asort的唯一区别是不保持索引关系。

rsort:与sort的唯一区别是逆向排序。

natsort:用自然排序算法对数组进行排序并保持索引关系,只接受一个要进行排序的数组。成功返回true,否则返回false。等价于asort($ar1,SORT_NATURAL)。

natcasesort:与natsort的唯一区别是不区分大小写。

usort:使用用户自定义的比较函数对数组中的值进行排序不保持索引关系,接受两个参数,第一个为要排序的数组,第二个为比较函数。比较函数要在其第一个参数大于、等于或小于第二参数时返回一个大于、等于或小于0的整数。功返回true,否则返回false。

uasort:与usort的唯一区别是保持索引关系。

shuffle:随机打乱数组,不保持索引关系。

ksort:对数组按照键名排序,并保持索引关系,接受两个参数,第一个为要进行排序的数组,第二个为可选的排序类型标识,默认为SORT_REGULAR。成功返回true,否则返回false。该函数区分大小写。

krsort:与ksort的唯一区别是逆向排序。

uksort:使用用户自定义的比较函数对数组中的键名进行排序并保持索引关系,接受两个参数,第一个为要排序的数组,第二个为比较函数。比较函数要在其第一个参数大于、等于或小于第二参数时返回一个大于、等于或小于0的整数。功返回true,否则返回false。

array_​reverse:返回单元顺序相反的数组,接受两个参数,第一个为要反序的数组,第二个为可选的标记,表示是否保留数字类型的键。

<?php
$ar1 = array(10, 100, 100, 0,100);
$ar2 = array(1, 3, 5, 4,2);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
$ar = array(
      array("10", 11, 100, 100, "a"),
      array("10", 2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_STRING,
                $ar[1], SORT_NUMERIC,SORT_DESC);
var_dump($ar);
array_multisort($ar,SORT_DESC);
var_dump($ar);
$ar1 = array(10, 100, 100, 0,100);
asort($ar1);
var_dump($ar1);
arsort($ar1);
var_dump($ar1);

$ar1=array("A1","a2","a1a","a09","a20","a10");
natsort($ar1);
var_dump($ar1);
$ar1=array("A1","a2","a1a","a09","a20","a10");
asort($ar1,SORT_NATURAL);
var_dump($ar1);
$ar1=array("A1","a2","a1a","a09","a20","a10");
sort($ar1);
var_dump($ar1);
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
usort($ar2,cmp);
var_dump($ar2);
shuffle($ar1);
var_dump($ar1);
shuffle($ar1);
var_dump($ar1);
$ar1=array("A1"=>"1","a2"=>"2","a1a"=>"3","a09"=>"4","a20"=>"5","a10"=>"6");
ksort($ar1);
var_dump($ar1);
$ar2 = array(1=>"a", 3=>"c", 5=>"e", 4=>"d",2=>"b");
uksort($ar2,cmp);
var_dump($ar2);
var_dump(array_reverse($ar1,true));
?>

数组排序函数对照表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值