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模板页面中分页代码的解析
Feb 06 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
php实现登陆模块功能示例
Oct 20 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
laravel框架的安装与路由实例分析
Oct 11 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
回帖脱衣服的图片实现代码
2014/02/15 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python多线程和多进程关系详解
2020/12/14 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
财务人员求职自荐书范文
2014/02/10 职场文书
奠基仪式主持词
2014/03/20 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
投资入股协议书
2016/03/22 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers