PHP数组回忆笔记--数组排序函数

最基本的 sort()函数携带至少一个参数,参数一为待排序数组,可选参数为所依据类型:
  1. SORT_NUMBERIC 按数值型排序,对整型或浮点型很有用。
  2. SORT_REGULAR 按ASCII码进行排序。
  3. SORT_STRING 按接近于人的使用习惯排序。
natsort()相对于sort()提供了一种更接近于人们习惯的排序机制,携带一个参数数组。
natcasesort()与natsort()的区别是不区分大小写。
此外,rsort(),asort(),arsort(),ksort()均可携带两个参数,像sort()一样。
rsort()提供逆排序。
asort()在sort()排序的基础上,关联了原来的键/值,使排序不改变键值的对应。
arsort()提供关联键/值的逆排序。
ksort()针对键进行排序。
array_multisort()函数可以对多个数组同时排序,看下面的例子:
array_multisort($arr1,SORT_STRING,SORT_ASC,
                             $arr2,SORT_STRING,SORT_ASC);
结果:
Array (Array1,Array2);
扩展函数 usort()携带两个参数,参数一为待排序数组,参数二为用户自定义排序函数,经典用法(对日-月-年的日期格式排序)如下:
<?php
$arr = array("02-03-2007","18-09-1999","20-11-1986","05-06-2002","03-03-2006","06-08-2008");
$arr1 = sort($arr);
print_r($arr);
echo "&lt;br>";
$arr2 = natsort($arr);
print_r($arr);
echo "<br>";

function MySort($a,$b){
    if ($a == $b) {
        return 0;
    }
    list($day1,$month1,$year1) = explode("-",$a);
    list($day2,$month2,$year2) = explode("-",$b);
    $va = $year1.$month1.$day1;
    $vb = $year2.$month2.$day2;
    return ($va &gt; $vb)?1:-1;
}

usort($arr,"MySort");
print_r($arr);

?&gt;
输出结果为:
Array ( [0] =&gt; 02-03-2007 [1] =&gt; 03-03-2006 [2] =&gt; 05-06-2002 [3] =&gt; 06-08-2008 [4] =&gt; 18-09-1999 [5] =&gt; 20-11-1986 )
Array ( [0] =&gt; 02-03-2007 [1] =&gt; 03-03-2006 [2] =&gt; 05-06-2002 [3] =&gt; 06-08-2008 [4] =&gt; 18-09-1999 [5] =&gt; 20-11-1986 )
Array ( [0] =&gt; 20-11-1986 [1] =&gt; 18-09-1999 [2] =&gt; 05-06-2002 [3] =&gt; 03-03-2006 [4] =&gt; 02-03-2007 [5] =&gt; 06-08-2008 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值