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

yipeiwu_com6年前PHP代码库
如果值没有重复的情况,可以先用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 => '/zb_users/upload/202003/b0xleza5lzy.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 => '/zb_users/upload/202003/c5vvggedgef.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实现断点续传下载的方法。分享给大家供大家参考。具体如下: $fname = 'http://XXXX/MMLDZG.mp3'; $fp = fopen($fnam...

基于PHP magic_quotes_gpc的使用方法详解

PHP magic_quotes_gpc主要是作用在WEB客户服务端的,它的作用时间是从请求开始,接下来我们将具体的为大家讲解它的使用方式。AD:我们今天要向大家介绍的是PHP magi...

PHP封装的非对称加密RSA算法示例

本文实例讲述了PHP封装的非对称加密RSA算法。分享给大家供大家参考,具体如下: 将php的openssl扩展中的非对称加密函数封装成一个Rsa类。 需要注意的是,在windows上,需...

PHP实现更改hosts文件的方法示例

本文实例讲述了PHP实现更改hosts文件的方法。分享给大家供大家参考,具体如下: 有这样一个需求,我有多个网址希望在不同的时候对应不同的 ip,如果一个个配 hosts,这工作显得有些...

php递归创建目录的方法

本文实例讲述了php递归创建目录的方法,分享给大家供大家参考。 具体实现代码如下: <?php function mk_dir($path){ //第1种情况,该目录...