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 相关文章推荐
我常用的几个类
Oct 09 PHP
php中的观察者模式
Mar 24 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
php微信公众号开发之图片回复
Oct 20 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/02/19 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
Bootstrap基础学习
2015/06/16 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
Cpy和Python的效率对比
2015/03/20 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
python 编码规范整理
2018/05/05 Python
Python线程同步的实现代码
2018/10/03 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
项目副经理岗位职责
2013/12/30 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
初中家长寄语
2014/04/02 职场文书
六年级小学生评语
2014/12/26 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
酒店厨房管理制度
2015/08/06 职场文书
python状态机transitions库详解
2021/06/02 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
各种货币符号快捷输入
2022/02/17 杂记
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL