形如$test = array(
'a'=> '8000',
'b'=> '9000',
'c'=> '9000',
'd'=> '7000',
'e'=> '6000',
'f'=> '5000',
'g'=> '9000'
);如果是取最大值,要求返回b,c,g
如果是取前两位最大值,要求返回b,c,g,a
想了半天,不知道有什么好的方法
解决方案 »
- php de wei lai
- 大家帮我推荐点css、javascript、ajax、jquery的学习方法被
- 数据库如何删除重复记录
- 请教,有css的代码看不懂也?
- 用phpMyAdmin远程连接,#1130 - Host '192.168.0.1' is not allowed to connect to this MySQL server
- session的内空为什么变空了?在线等!
- 在php中如何实现购物排队问题?急...........
- 连接ORACLE数据的时候出现的问题?
- 但怎样进阶?PHP
- wingc,你的意思是要分7个区?
- 一个字段很多的函数,直接调用好还是单写函数好
- 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
)
方法很多,不要在一棵树上吊死