PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析


Posted in PHP onAugust 18, 2014

sort() 函数用于对数组单元从低到高进行排序。

rsort() 函数用于对数组单元从高到低进行排序。

asort() 函数用于对数组单元从低到高进行排序并保持索引关系。

arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。

ksort() 函数用于对数组单元按照键名从低到高进行排序。

krsort() 函数用于对数组单元按照键名从高到低进行排序。

sort()

PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。

注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。

语法:

bool sort( array &array [, int sort_flags] )

可选参数 sort_flags 用于改变排序的行为:

sort_flags 取值 说明

SORT_REGULAR 正常比较单元

SORT_NUMERIC 单元被作为数字来比较

SORT_STRING 单元被作为字符串来比较

SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

例子:

$arr = array("b", "a", "c");
sort($arr);
print_r($arr);
?>

运行该例子输出:

Array ( [0] => a [1] => b [2] => c )

在本例中, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。

rsort()

PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

asort()

PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。

语法:

bool asort( array &array [, int sort_flags] )

可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。

例子:

$arr = array("b", "a", "c");
asort($arr);
print_r($arr);
?>

运行该例子输出:

Array ( [1] => a [0] => b [2] => c )

arsort()

PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

ksort()

PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。

本函数会保留原来的键名,因此常用于关联数组。

语法:

bool ksort( array &array [, int sort_flags] )

可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。

例子:

$arr = array("b"=>18, "a"=>20, "c"=>25);
ksort($arr);
print_r($arr);
?>

运行该例子输出:

Array ( [a] => 20 [b] => 18 [c] => 25 )

krsort()

PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

PHP 相关文章推荐
用PHP读注册表
Oct 09 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 #PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 #PHP
mac环境中使用brew安装php5.5.15
Aug 18 #PHP
PHP 正则表达式常用函数
Aug 17 #PHP
PHP常用正则表达式集锦
Aug 17 #PHP
学习php中的正则表达式
Aug 17 #PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 #PHP
You might like
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
.NET remoting中对象激活的两种方式
2015/06/08 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
促销活动方案模板
2014/02/24 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
期末复习计划
2015/01/19 职场文书
承诺保证书格式
2015/02/28 职场文书
期中考试后的感想
2015/08/07 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL