Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php比较多维数组中值的大小排序实现代码

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

发布时间:2014-11-27   编辑:www.jquerycn.cn
php比较多维数组中值的大小排序实现代码

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://a.jquerycn.cn/image.gif' ,
o_detail => 人人,
vote_num => 1
),

1 => Array
(
o_id => 1844,
o_name => 芭比,
o_pic => 'http://upload.jquerycn.cn/game_image/abc.jpg',
o_detail => 也是美女呢,
vote_num => 2
),

2 => Array
(
o_id => 1843,
o_name => 程程,
o_pic => 'http://a.jquerycn.cn./upload_img/abc.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://a.jquerycn.cn./upload_img/abc.png
[o_detail] => 美女哦
[vote_num] => 3
)
[1] => Array
(
[o_id] => 1844
[o_name] => 芭比
[o_pic] => http://upload.jquerycn.cn/game_image/abc.jpg
[o_detail] => 也是美女呢
[vote_num] => 2
)
[0] => Array
(
[o_id] => 1861
[o_name] => 2
[o_pic] => http://a.jquerycn.cn/image.gif
[o_detail] => 人人
[vote_num] => 1
)
)

您可能感兴趣的文章:
php数组排序方法大全(脚本学堂整理奉献)
php二维数组排序的两种方法
php比较多维数组中值的大小排序实现代码
php多维数组排序
php 冒泡排序的实现代码
学习php多维数组的排序
PHP排序函数有哪些?
php二维数组根据键名分组相加的实例代码
php 二维数组排序的两个例子
php 简单数组排序的方法

关键词: php多维数组  php数组排序   
[关闭]