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

2015-01-24信息快讯网

php中根据数组的键(key)进行比较,排序,有很多内置函数可以轻松解决,如krsort(), ksort()等。如果是根据数组的值(value)进行比较就麻烦一些

如果值没有重复的情况,可以先用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.jb51.net/image.gif' , 
o_detail => 人人, 
vote_num => 1 
), 

1 => Array 
( 
o_id => 1844, 
o_name => 芭比, 
o_pic => 'http://upload.jb51.net/game_image/dfxxz/dfVIP.files/shenxiandao.jpg', 
o_detail => 也是美女呢, 
vote_num => 2 
), 

2 => Array 
( 
o_id => 1843, 
o_name => 程程, 
o_pic => 'http://g.jb51.net./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.jb51.net./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png 
[o_detail] => 美女哦 
[vote_num] => 3 
) 
[1] => Array 
( 
[o_id] => 1844 
[o_name] => 芭比 
[o_pic] => http://upload.jb51.net/game_image/dfxxz/dfVIP.files/shenxiandao.jpg 
[o_detail] => 也是美女呢 
[vote_num] => 2 
) 
[0] => Array 
( 
[o_id] => 1861 
[o_name] => 2 
[o_pic] => http://g.jb51.net/image.gif 
[o_detail] => 人人 
[vote_num] => 1 
) 
) 
解析php下载远程图片函数 可伪造来路
解析php通过cookies获取远程网页的指定代码
使用dump函数,给php加断点测试
解析php多线程下载远程多个文件
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
PHP Class&Object -- PHP 自排序二叉树的深入解析
通过PHP current函数获取未知字符键名数组第一个元素的值
解析php addslashes()与addclashes()函数的区别和比较
解析PHP将对象转换成数组的方法(兼容多维数组类型)
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
解析PHP中数组元素升序、降序以及重新排序的函数
使用array mutisort 实现按某字段对数据排序
深入array multisort排序原理的详解
深入Apache与Nginx的优缺点比较详解
深入for,while,foreach遍历时间比较的详解
一些php项目中比较通用的php自建函数的详解
header跳转和include包含问题详解
JSON在PHP中的应用介绍
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
巧用php中的array_filter()函数去掉多维空值的代码分享
用C/C++扩展你的PHP 为你的php增加功能
初步介绍PHP扩展开发经验分享
PHP输出数组中重名的元素的几种处理方法
比较discuz和ecshop的截取字符串函数php版
php数组一对一替换实现代码
php实现快速排序法函数代码
php中3种方法统计字符串中每种字符的个数并排序
php中数组首字符过滤功能代码
PHP常用开发函数解析之数组篇[未完结]
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
php 操作数组(合并,拆分,追加,查找,删除等)
php中的一些数组排序方法分享
php数据结构与算法(PHP描述) 快速排序 quick sort
PHP中数组的三种排序方法分享
比较好用的PHP防注入漏洞过滤函数代码
mysql数据库差异比较的PHP代码
比较详细PHP生成静态页面教程
©2014-2024 dbsqp.com