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 => '' ,
o_detail => 人人,
vote_num => 1
),
1 => Array
(
o_id => 1844,
o_name => 芭比,
o_pic => ',
o_detail => 也是美女呢,
vote_num => 2
),
2 => Array
(