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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
计算2000年01月01日起到指定日的天数
Oct 09 PHP
在字符串中把网址改成超级链接
Oct 09 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
PHP身份证校验码计算方法
Aug 10 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 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
网络资源
2006/10/09 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
JavaScript实现短信倒计时60s
2017/10/09 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python多线程爬虫简单示例
2016/03/04 Python
python删除服务器文件代码示例
2018/02/09 Python
Python super()方法原理详解
2020/03/31 Python
房地产管理毕业生自荐信
2013/11/04 职场文书
大班上学期个人总结
2015/02/13 职场文书
交通安全月活动总结
2015/05/08 职场文书
毕业实习单位意见
2015/06/04 职场文书
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server