手机
当前位置:查字典教程网 >编程开发 >php教程 >php比较多维数组中值的大小排序实现代码
php比较多维数组中值的大小排序实现代码
摘要:如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较...

如果值没有重复的情况,可以先用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 >';

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快速查找数据库中恶意代码的方法

php一个解析字符串排列数组的方法

php中PDO方式实现数据库的增删改查

我的论坛源代码(十)

如何在HTML中嵌入PHP 代码

php生成年月日下载列表的方法

php实现比较两个字符串日期大小的方法

php遍历类中包含的所有元素的方法

我的论坛源代码(一)

精品推荐
分类导航