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_Flame(Version:Progress)的原代码
Oct 09 PHP
php简单封装了一些常用JS操作
Feb 25 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
PHP实现时间轴函数代码
Oct 08 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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
微信支付开发订单查询实例
2016/07/12 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
jquery ajax请求实例深入解析
2012/11/26 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
Python进行数据提取的方法总结
2016/08/22 Python
TensorFlow实现Logistic回归
2018/09/07 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python socket模块方法实现详解
2019/11/05 Python
xml有哪些解析技术?区别是什么
2016/04/26 面试题
英语系毕业生求职信
2014/07/13 职场文书
法人委托书的范本格式
2014/09/11 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫