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 相关文章推荐
配置最新的PHP加MYSQL服务器
Oct 09 PHP
一个数据采集类
Feb 14 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP JWT初识及其简单示例
Oct 10 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 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php实现简单爬虫的开发
2016/03/28 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
如何在pycharm中安装第三方包
2020/10/27 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
银行员工辞职信范文
2014/01/20 职场文书
团日活动总结报告
2014/06/25 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
白酒代理协议书范本
2014/10/26 职场文书
撤诉状格式范本
2015/05/19 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers