如何求数组中的最大值,前N个最大值 形如$test = array( 'a'=> '8000', 'b'=> '9000', 'c'=> '9000', 'd'=> '7000', 'e'=> '6000', 'f'=> '5000', 'g'=> '9000');如果是取最大值,要求返回b,c,g如果是取前两位最大值,要求返回b,c,g,a想了半天,不知道有什么好的方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $test = array( 'a'=> '8000', 'b'=> '9000', 'c'=> '9000', 'd'=> '7000', 'e'=> '6000', 'f'=> '5000', 'g'=> '9000');$a = array_keys($test, max($test));print_r($a);/*Array( [0] => b [1] => c [2] => g)*/$t = array_diff_key($test, array_flip($a));$a = array_merge($a, array_keys($t, max($t)));print_r($a);/*Array( [0] => b [1] => c [2] => g [3] => a)*/ 汗,查了下手册才知道array_keys还可以传第二个参数我再想想这个如何扩展,多谢老大了 可以这样扩展$test = array( 'a'=> '8000', 'b'=> '9000', 'c'=> '9000', 'd'=> '7000', 'e'=> '6000', 'f'=> '5000', 'g'=> '9000');print_r(places($test));print_r(places($test, 2));print_r(places($test, 3));function places($ar, $n=1) { $r = array_keys($ar, max($ar)); while(--$n) { $t = array_diff_key($ar, array_flip($r)); $r = array_merge($r, array_keys($t, max($t))); }; return $r;}Array( [0] => b [1] => c [2] => g)Array( [0] => b [1] => c [2] => g [3] => a)Array( [0] => b [1] => c [2] => g [3] => a [4] => d)方法很多,不要在一棵树上吊死 急求一正则表达式写法,比较有挑战性。谢谢各位的时间了 新手学php 请教一个文本框验证不为空的问题? ?号动态传值,请指导。谢谢 JS和JSP是同一个概念吗? 请教一下这个 mysql 语句怎么写 PHP 调外部命令问题 php+mysql循环插入数据。。急急急 谁能给一个PHPLIB的手册?小弟在google上找不到 怎么能像信箱那样,一次选中几个项目一起提交。谢谢 pph与mysql数据库查询出的值怎么放到多维数组里 一个字段很多的函数,直接调用好还是单写函数好 Appserv安装完了是不是在浏览器中验证是否配置成功 可是我打开浏览器 却显示出错 是不是安装出错了?
'a'=> '8000',
'b'=> '9000',
'c'=> '9000',
'd'=> '7000',
'e'=> '6000',
'f'=> '5000',
'g'=> '9000'
);
$a = array_keys($test, max($test));
print_r($a);
/*
Array
(
[0] => b
[1] => c
[2] => g
)
*/
$t = array_diff_key($test, array_flip($a));
$a = array_merge($a, array_keys($t, max($t)));
print_r($a);
/*
Array
(
[0] => b
[1] => c
[2] => g
[3] => a
)
*/
我再想想这个如何扩展,多谢老大了
'a'=> '8000',
'b'=> '9000',
'c'=> '9000',
'd'=> '7000',
'e'=> '6000',
'f'=> '5000',
'g'=> '9000'
);print_r(places($test));
print_r(places($test, 2));
print_r(places($test, 3));function places($ar, $n=1) {
$r = array_keys($ar, max($ar));
while(--$n) {
$t = array_diff_key($ar, array_flip($r));
$r = array_merge($r, array_keys($t, max($t)));
};
return $r;
}
Array
(
[0] => b
[1] => c
[2] => g
)
Array
(
[0] => b
[1] => c
[2] => g
[3] => a
)
Array
(
[0] => b
[1] => c
[2] => g
[3] => a
[4] => d
)
方法很多,不要在一棵树上吊死