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的面试题集,附我的答案和分析(一)
Nov 19 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
PHP学习笔记之数组篇
Jun 28 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP速成大法
Jan 30 PHP
一个非常实用的php文件上传类
Jul 04 PHP
PHP创建XML接口示例
Jul 04 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
php生成HTML文件的类方法
2019/10/11 PHP
网页javascript精华代码集
2007/01/24 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
js实现开关灯效果
2020/03/30 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
单位更名证明
2015/06/18 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL