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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
php flush类输出缓冲剖析
Oct 19 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
54个提高PHP程序运行效率的方法
Jul 19 PHP
PHP上传文件参考配置大文件上传
Dec 16 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP时间处理类操作示例
2018/09/05 PHP
javascript 数组的方法集合
2008/06/05 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
python实现三维拟合的方法
2018/12/29 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python中调试或排错的五种方法示例
2019/09/12 Python
如何高效率的查找一个月以内的数据
2012/04/15 面试题
大学生校园创业计划书
2014/02/08 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP