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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
php socket方式提交的post详解
Jul 19 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
js读写(删除)Cookie实例详解
2013/04/17 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
Javascript的闭包详解
2014/12/26 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
Vue中props的使用详解
2018/06/15 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python处理文本换行符实例代码
2018/02/03 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
几个常见的消息中间件(MOM)
2014/01/08 面试题
演讲主持词
2014/03/18 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2015年护士节慰问信
2015/03/23 职场文书
召开会议通知范文
2015/04/15 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书