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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP 采集程序原理分析篇
Mar 05 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 PHP
win10下 php安装seaslog扩展的详细步骤
Dec 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
三个类概括PHP的五种设计模式
2012/09/05 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
python实现划词翻译
2020/04/23 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python线性回归实战分析
2018/02/01 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
Python列表对象实现原理详解
2019/07/01 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
快速创建python 虚拟环境
2020/11/28 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
租车协议书范本
2014/04/22 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
《实心球》教学反思
2016/02/23 职场文书
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL