PHP 多维数组的排序问题 根据二维数组中某个项排序


Posted in PHP onNovember 09, 2011

PHP内置函数 array_multisort 要求每个数组大小一样
$areas是地区的二维数组,包含人数和次数,现在要按这2种数进行降序排序

foreach($areaArray as &$areas) { 
$times = $numbers = array(); 
foreach($areas as $province => $v) { 
$times[$province] = $v['times']; 
$numbers[$province] = $v['numbers']; 
} 
array_multisort($times, SORT_DESC, $numbers, SORT_DESC, $areas); 
}

比如有个多为数组:
$arr = array( 
‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), 
‘b' => array(‘id' => 2,'name' => 3,'age' => 4), 
‘a' => array(‘id' => 8,'name' => 10,'age' => 5), 
‘c' => array(‘id' => 1,'name' => 2,'age' => 2) 
);

需要对二维数组中的 age 项排序。
需要用到PHP的内置函数 array_multisort(),可以看手册。
自定义函数:
function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){ 
if(is_array($multi_array)){ 
foreach ($multi_array as $row_array){ 
if(is_array($row_array)){ 
$key_array[] = $row_array[$sort_key]; 
}else{ 
return false; 
} 
} 
}else{ 
return false; 
} 
array_multisort($key_array,$sort,$multi_array); 
return $multi_array; 
} 
//处理 
echo “<pre/>”; 
print_r(multi_array_sort($arr,'age'));exit; 
//输出 
Array 
( 
[c] => Array 
( 
[id] => 1 
[name] => 2 
[age] => 2 
) 
[b] => Array 
( 
[id] => 2 
[name] => 3 
[age] => 4 
) 
[a] => Array 
( 
[id] => 8 
[name] => 10 
[age] => 5 
) 
[d] => Array 
( 
[id] => 5 
[name] => 1 
[age] => 7 
) 
) 
written by 大宇 
0
PHP 相关文章推荐
实用函数9
Nov 08 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
php计算年龄精准到年月日
Nov 17 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 PHP
php中用unset销毁变量并释放内存
May 10 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 #PHP
PHP句法规则详解 入门学习
Nov 09 #PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 #PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 #PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 #PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 #PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 #PHP
You might like
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php多文件上传实现代码
2014/02/20 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
犀利的js 函数集合
2009/06/11 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
AngularJS入门之动画
2016/07/27 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
layui实现数据分页功能
2019/07/27 Javascript
vue实现计算器功能
2020/02/22 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
详细介绍Ruby中的正则表达式
2015/04/10 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
房屋租房协议书范本
2014/12/04 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
谢师宴家长致辞
2015/07/27 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python