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邮件专题
Oct 09 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
PHP5 字符串处理函数大全
Mar 23 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 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/30 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
javascript实现动态标签云
2015/10/16 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python数学形态学实例分析
2019/09/06 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
茶叶生产计划书
2014/01/10 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
超市创业计划书
2014/09/15 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript