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编程开发“虚拟域名”系统
Oct 09 PHP
PHP 编程安全性小结
Jan 08 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
深入理解php的MySQL连接类
Jun 07 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php的sso单点登录实现方法
Jan 08 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 PHP
Laravel 之url参数,获取路由参数的例子
Oct 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
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Prototype Selector对象学习
2009/07/23 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
JS的get和set使用示例
2014/02/20 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
小区门卫工作职责
2013/12/14 职场文书
优秀部门获奖感言
2014/02/14 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP