PHP 多维数组排序(usort,uasort)


Posted in PHP onJune 30, 2010

数字索引数组:
bool usort( array &$array, callback $cmp_function )
usort函数对指定数组(参数1)按指定方式(参数2)进行排序。
当我们想对多维数组进行排序时,多维数组的每个元素又是一数组类型,而两个数组如何比较大小?这是需要用户自定义的(是按每个数组的第一元素比较还是…)。

<?php 
//定义多维数组 
$a = array( 
array("sky", "blue"), 
array("apple", "red"), 
array("tree", "green")); 
//自定义数组比较函数,按数组的第二个元素进行比较。 
function my_compare($a, $b) { 
if ($a[1] < $b[1]) 
return -1; 
else if ($a[1] == $b[1]) 
return 0; 
else 
return 1; 
} 
//排序 
usort($a, 'my_compare'); 
//输出结果 
foreach($a as $elem) { 
echo "$elem[0] : $elem[1]<br />"; 
} ?>

结果为:
sky : blue 
tree : green 
apple : red

关联数组:
bool uasort(array &$array, callback $cmp_function)
bool uksort(array &$array, callback $cmp_function)

uasort, uksort用法与usort相同,其中uasort()对关联数组的值(value)进行排序,uksort()对关联数组的关键字(key)进行排序。

<?php 
$a = array( 
'Sunday' => array(0,'7th'), 
'Friday' => array(5,'5th'), 
'Tuesday'=> array(2,'2nd')); function my_compare($a, $b) { 
if ($a[1] < $b[1]) 
return -1; 
else if ($a[1] == $b[1]) 
return 0; 
else 
return 1; 
} 
//按$a数组的值的第二个元素(7th,5th,2nd)进行排序 
uasort($a, 'my_compare'); 
foreach($a as $key => $value) { 
echo "$key : $value[0] $value[1]<br />"; 
} 
//按$a数组的关键字的第二个字符(r,u,u)进行排序 
uksort($a, 'my_compare'); 
foreach($a as $key => $value) { 
echo "$key : $value[0] $value[1]<br />"; 
} 
?>

结果为:

Tuesday : 2 2nd
Friday : 5 5th
Sunday : 0 7th
Friday : 5 5th
Sunday : 0 7th
Tuesday : 2 2nd

PHP 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
cache_lite试用
Feb 14 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
php生成zip文件类实例
Apr 07 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
php获取微信openid方法总结
Oct 10 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 #PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 #PHP
PHP 反向排序和随机排序代码
Jun 30 #PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 #PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 #PHP
PHP字符串处理的10个简单方法
Jun 30 #PHP
php flv视频时间获取函数
Jun 29 #PHP
You might like
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP微信支付开发实例
2016/06/22 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
python中dict使用方法详解
2019/07/17 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
2014年党员个人工作总结
2014/12/02 职场文书