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 相关文章推荐
真正的ZIP文件操作类(php)
Jul 21 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
简单的cookie计数器实现源码
Jun 07 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
PHP实现简单数字分页效果
Jul 26 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
详解PHP中mb_strpos的使用
Feb 04 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
3
2006/10/09 PHP
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
Javascript Math对象
2009/08/13 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
jQuery实现可编辑的表格
2019/12/11 jQuery
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python中pygame模块用法实例
2014/10/09 Python
利用Python获取操作系统信息实例
2016/09/02 Python
python编程实现希尔排序
2017/04/13 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
Python重新加载模块的实现方法
2018/10/16 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
廉洁自律承诺书2015
2015/01/22 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
干部理论学习心得体会
2016/01/21 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
导游词之上海豫园
2019/10/24 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js