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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP经典面试题集锦
Mar 19 PHP
php实现购物车功能(以大苹果购物网为例)
Mar 09 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 PHP
关于PHP求解三数之和问题详析
Nov 09 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
Cannot modify header information错误解决方法
2008/10/08 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php中Snoopy类用法实例
2015/06/19 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
JQuery中操作Css样式的方法
2014/02/12 Javascript
初始Nodejs
2014/11/08 NodeJs
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
python创建线程示例
2014/05/06 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python多进程实现进程间通信实例
2017/11/24 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
日本语毕业生自荐信
2014/02/01 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
工程部文员岗位职责
2015/02/04 职场文书
交通事故起诉书
2015/05/19 职场文书
家长会开场白和结束语
2015/05/29 职场文书
雷锋的故事观后感
2015/06/10 职场文书
画展观后感
2015/06/17 职场文书
幼儿园家长心得体会
2016/01/21 职场文书