php比较多维数组中值的大小排序实现代码


Posted in PHP onSeptember 08, 2012

如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较大小了。如果要截取数组,可用array_slice()。

如果有值重复的情况,就要用到一些排序算法了,不过php有很强大的函数uasort(),使用自定义的比较函数对数组中的值进行排序并保持索引关联,usort()则会重建索引。

function cmp($a, $b){ 
if ($a["vote_num"] == $b["vote_num"]) { 
return 0; 
} 
return ($a["vote_num"] > $b["vote_num"]) ? -1 : 1; 
} $arr = Array 
( 
0 => Array 
( 
o_id => 1861, 
o_name => 2, 
o_pic => 'http://g.3water.com/image.gif' , 
o_detail => 人人, 
vote_num => 1 
), 
1 => Array 
( 
o_id => 1844, 
o_name => 芭比, 
o_pic => 'http://upload.3water.com/game_image/dfxxz/dfVIP.files/shenxiandao.jpg', 
o_detail => 也是美女呢, 
vote_num => 2 
), 
2 => Array 
( 
o_id => 1843, 
o_name => 程程, 
o_pic => 'http://g.3water.com./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png', 
o_detail => 美女哦, 
vote_num => 3 
) 
); 
uasort($arr, ”cmp“); 
echo ‘< pre style="text-align:left" >'; 
print_r ($arr); 
echo ‘< / pre >';

返回
Array 
( 
[2] => Array 
( 
[o_id] => 1843 
[o_name] => 程程 
[o_pic] => http://g.3water.com./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png 
[o_detail] => 美女哦 
[vote_num] => 3 
) 
[1] => Array 
( 
[o_id] => 1844 
[o_name] => 芭比 
[o_pic] => http://upload.3water.com/game_image/dfxxz/dfVIP.files/shenxiandao.jpg 
[o_detail] => 也是美女呢 
[vote_num] => 2 
) 
[0] => Array 
( 
[o_id] => 1861 
[o_name] => 2 
[o_pic] => http://g.3water.com/image.gif 
[o_detail] => 人人 
[vote_num] => 1 
) 
)
PHP 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
如何用php获取文件名后缀
Jun 09 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
PHP大文件及断点续传下载实现代码
Aug 18 PHP
JSON在PHP中的应用介绍
Sep 08 #PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 #PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 #PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 #PHP
初步介绍PHP扩展开发经验分享
Sep 06 #PHP
php写的带缓存数据功能的mysqli类
Sep 06 #PHP
一个PHP并发访问实例代码
Sep 06 #PHP
You might like
PHP生成二维码的两个方法和实例
2014/07/01 PHP
php5与php7的区别点总结
2019/10/11 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
原生js实现放大镜
2017/02/20 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
市场开发与营销专业求职信
2013/12/31 职场文书
物流合作计划书
2014/01/10 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
中秋节活动总结
2014/08/29 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
2015年财务部工作总结
2015/04/10 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android