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 相关文章推荐
ajax实现无刷新分页(php)
Jul 18 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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 数学运算验证码实现代码
2009/10/11 PHP
php Calender(日历)代码分享
2014/01/03 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
Js中sort()方法的用法
2006/11/04 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
详解vue高级特性
2020/06/09 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python实现多线程端口扫描
2019/08/31 Python
使用Python的turtle模块画国旗
2019/09/24 Python
python实现的分层随机抽样案例
2020/02/25 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
Django封装交互接口代码
2020/07/12 Python
详解如何修改python中字典的键和值
2020/09/29 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
优秀班集体获奖感言
2014/02/03 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
连带责任保证书
2014/04/29 职场文书
新闻报道策划方案
2014/06/11 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS