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 相关文章推荐
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
PHP微信API接口类
Aug 22 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
Dec 30 PHP
php引用传递
Apr 01 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分页显示制作详细讲解
2006/12/05 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP 图片上传代码
2011/09/13 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
谈谈JS中的!!
2017/12/07 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
python协程用法实例分析
2015/06/04 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Python多线程扫描端口代码示例
2018/02/09 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
关于python多重赋值的小问题
2019/04/17 Python
python动态视频下载器的实现方法
2019/09/16 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
2014年人民警察入党思想汇报
2014/10/12 职场文书
爱国主义电影观后感
2015/06/18 职场文书
话题作文之诚信
2019/11/28 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers