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 相关文章推荐
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php生成gif动画的方法
Nov 05 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
phalcon框架使用指南
Feb 23 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
php 可变函数使用小结
Jun 12 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
一些不错的js函数ajax
2008/08/20 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
python版飞机大战代码分享
2018/11/20 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
新学期开学标语
2014/06/30 职场文书
农业生产宣传标语
2014/10/08 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers