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编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 PHP
深入分析php之面向对象
May 15 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
php中执行系统命令的方法
Mar 21 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP微信红包API接口
2015/12/05 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python和go语言的区别是什么
2020/07/20 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
国贸专业个人求职信分享
2013/12/04 职场文书
项目经理任命书
2014/06/04 职场文书
社会工作专业求职信
2014/07/15 职场文书
化验室岗位职责
2015/02/14 职场文书
2016大一新生军训感言
2015/12/08 职场文书