PHP数组回忆笔记--数组排序函数
来源:互联网 发布:淘宝网上传数据包 编辑:程序博客网 时间:2024/05/16 11:10
最基本的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 "<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 > $vb)?1:-1;
}
usort($arr,"MySort");
print_r($arr);
?>
输出结果为:
Array( [0] => 02-03-2007 [1] => 03-03-2006 [2] =>05-06-2002 [3] => 06-08-2008 [4] => 18-09-1999 [5]=> 20-11-1986 )
Array ( [0] => 02-03-2007 [1]=> 03-03-2006 [2] => 05-06-2002 [3] => 06-08-2008[4] => 18-09-1999 [5] => 20-11-1986 )
Array ( [0]=> 20-11-1986 [1] => 18-09-1999 [2] => 05-06-2002[3] => 03-03-2006 [4] => 02-03-2007 [5] =>06-08-2008 )
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 "<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 > $vb)?1:-1;
}
usort($arr,"MySort");
print_r($arr);
?>
输出结果为:
Array( [0] => 02-03-2007 [1] => 03-03-2006 [2] =>05-06-2002 [3] => 06-08-2008 [4] => 18-09-1999 [5]=> 20-11-1986 )
Array ( [0] => 02-03-2007 [1]=> 03-03-2006 [2] => 05-06-2002 [3] => 06-08-2008[4] => 18-09-1999 [5] => 20-11-1986 )
Array ( [0]=> 20-11-1986 [1] => 18-09-1999 [2] => 05-06-2002[3] => 03-03-2006 [4] => 02-03-2007 [5] =>06-08-2008 )
- PHP数组回忆笔记--数组排序函数
- PHP数组回忆笔记--遍历数组函数
- PHP数组回忆笔记
- PHP数组回忆笔记--数组的合并、拆分、区别取值函数
- PHP数组回忆笔记--其它有用的数组函数
- PHP数组回忆笔记--定位数组元素
- PHP 数组函数-数组排序
- php数组排序函数
- PHP 数组排序函数
- PHP数组排序函数
- PHP数组--排序函数
- PHP数组排序函数
- php数组函数笔记
- PHP二维数组排序函数
- php二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- js应用到将两个页面合并
- PHP数组回忆笔记--数组的合并、拆分、区别取值函数
- 框架滚动条样式
- RichFace LiveDemo
- 页面插入框架自适应长宽
- PHP数组回忆笔记--数组排序函数
- 相当漂亮的图片浏览界面
- SUBSTRING CHARINDEX REPLACE
- PHP数组回忆笔记--遍历数组函数
- PHP数组回忆笔记--定位数组元素
- SELECT记录UPDATE
- FCKeditor的配置和使用方法
- “暗物质”概念的引出
- 用MVC模式实现真分页