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

如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较大小了。如果要截取数组,可用array_slice()。 如果有值重复的情况,就要用到一些排序算法了,不过PHP有很强大的函数uasort(),使用自定义比较函数对数组中的值进行排序并保持索引关联,usort()则会重建索引。 <div class="codetitle"><a style="CURSOR: pointer" data="54917" class="copybut" id="copybut54917" onclick="doCopy('code54917')"> 代码如下:

<div class="codebody" id="code54917">
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.cc/image.gif',
o_detail => 人人,
Vote_num => 1
),1 => Array
(
o_id => 1844,
o_name => 芭比,
o_pic => 'http://upload.jb51.cc/game_image/dfxxz/dfVIP.files/shenxiandao.jpg',
o_detail => 也是美女呢,
Vote_num => 2
),2 => Array
(
o_id => 1843,
o_name => 程程,
o_pic => 'http://g.jb51.cc./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 >';

返回
<div class="codetitle"><a style="CURSOR: pointer" data="46631" class="copybut" id="copybut46631" onclick="doCopy('code46631')"> 代码如下:
<div class="codebody" id="code46631">
Array
(
[2] => Array
(
[o_id] => 1843
[o_name] => 程程
[o_pic] => http://g.jb51.cc./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png
[o_detail] => 美女哦
[Vote_num] => 3
)
[1] => Array
(
[o_id] => 1844
[o_name] => 芭比
[o_pic] => http://upload.jb51.cc/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.cc/image.gif
[o_detail] => 人人
[Vote_num] => 1
)
)

多维数组

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...