PHP 数组排序方法总结 推荐收藏


Posted in PHP onJune 30, 2010

随着PHP的快速发展,用它的人越来越多,在PHP数组学习摘录部分了解到最基本的PHP数组的建立和数组元素的显示。需要深入学习下PHP数组的相关操作。首先接触的就是PHP数组排序、降序的排序问题。

sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。
asort:对数组进行排序并保持索引关系
arsort:对数组进行逆向排序并保持索引关系

ksort:对数组按照键名排序,保留键名到数据的关联
krsort:对数组按照键名逆向排序,保留键名到数据的关联

natsort:对字母数字字符串进行排序并保持原有键/值的关联
natcasesort:同natsort排序算法,但不区分大小写字母排序

PHP 数组排序(sort)
数字索引数组排序:
函数:sort(array, [sort type])
说明:sort()函数按升序对指定数组(第一个参数)进行排序。
sort函数第二参数作用为指定排序类型,是可选参数,可能的值为:
SORT_REGULAR: 默认值,不改变类型进行排序;
SORT_NUMERIC: 把值作为数字进行排序;
SORT_STRING: 把值作为字符串进行排序;
如数组中有4和”37″,按数字排序,4小于”37″;按字符串排序,4大于”37″;

<?php 
$a = array(4,"37",3,100,0,-5); 
sort($a); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
sort($a,SORT_STRING); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
?>

输出结果:

-5 0 3 4 37 100
-5 0 100 3 37 4

降序排序:rsort(array, [sort type])
参数用法与sort函数相同。

关联数组排序:
函数:asort(array, [sort type])
说明:根据关联数组的元素值进行升序排序。参数使用见上面的sort函数。

函数:ksort(array, [sort type])
说明:根据关联数组的关键字进行升序排序。参数使用见上面的sort函数。

<?php 
$a = array( 
"good" => "bad", 
"right" => "wrong", 
"boy" => "girl"); echo "value sort<br />"; 
asort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
echo "<br />key sort<br />"; 
ksort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
?>

输出结果:

value sort
good : bad
boy : girl
right : wrong

key sort
boy : girl
good : bad
right : wrong
降序排序:
arsort(array, [sort type]) 与 asort对应
krsort(array, [sort type]) 与 ksort对应

快速创建数组的函数range()

比如range()函数可以快速创建从1到9的数字数组:

<?php 
$numbers=range(1,9); 
echo $numbers[1]; 
?>

当然,使用range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组:
<?php 
$numbers=range(a,z); 
foreach ($numbers as $mychrs) 
echo $mychrs." "; 
?>

使用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创建的数组元素是:1、4、7。常见PHP数组排序一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功能函数为sort()。比如:

<?php 
$people=array('name','sex','nation','birth'); 
foreach ($people as $mychrs) 
echo $mychrs." "; 
sort($people); 
echo "<br />---排序后---<br />"; 
foreach ($people as $mychrs) 
echo $mychrs." "; 
?>

升序排序后的数组元素显示为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)

Sort()函数还具有第二参数,用来说明PHP数组排序升序的规则是用来比较数字还是字符串的。比如:

<?php 
echo "---按数字升序排序---<br />"; 
$num2=array('26','3',); 
sort($num2,SORT_NUMERIC); 
foreach ($num2 as $mychrs) 
echo $mychrs." "; 
echo "<br />---按字符升序排序---<br />"; 
$num3=array('26','3'); 
sort($num3,SORT_STRING); 
foreach ($num3 as $mychrs) 
echo $mychrs." "; 
?>

SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如:$num1=range(1,9);rsort($num1);这里其实就相当于range(9,1)。
PHP 相关文章推荐
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
最省空间的计数器
Oct 09 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
PHP数组操作类实例
Jul 11 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
Yii CGridView用法实例详解
Jul 12 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 #PHP
PHP字符串处理的10个简单方法
Jun 30 #PHP
php flv视频时间获取函数
Jun 29 #PHP
PHP常用代码大全(新手入门必备)
Jun 29 #PHP
PHP print类函数使用总结
Jun 25 #PHP
php url地址栏传中文乱码解决方法集合
Jun 25 #PHP
PHP+ACCESS 文章管理程序代码
Jun 21 #PHP
You might like
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
php获取汉字首字母的函数
2013/11/07 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
phalcon框架使用指南
2016/02/23 PHP
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
浅析vue-router中params和query的区别
2019/12/24 Javascript
12步教你理解Python装饰器
2016/02/25 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
班组长安全生产职责
2013/12/16 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
市场营销工作计划书
2014/05/06 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
查摆剖析材料范文
2014/09/30 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
公司租车协议书
2015/01/29 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
早安问候语大全
2015/11/10 职场文书
初二英语教学反思
2016/02/15 职场文书