2012-04-10 31 views
2

所以我知道min()可以从数组中获得最低值,但是我需要数组中的3个最低值。从数组中获得3个最低值,PHP

假设我的阵列名为$myArray

我我阵列上使用asort($myArray),然后print_r($myArray)输出这样的:

Array (
    [137] => 4.90416668118 
    [135] => 7.1203544474 
    [18] => 7.2476262434 
    [81] => 8.37903400152 
    [33] => 9.1074567001 
    [4] => 9.90788482793 
    [138] => 10.2493339987 
    [5] => 11.6024401676 
    [63]...and so on until 
    [124] => 8727.73285117 
    [153] => 8727.73285117 
    [117] => 8727.73285117 
) 

我怎样才能获得3个第一值或X第一值我应该需要...

我应该指定:是否有可能这样做失去了钥匙?

回答

16
asort($yourarray, SORT_NUMERIC); 
print_r(array_slice($yourarray, 0, 3, true)); 

http://www.php.net/manual/en/function.asort.php

http://www.php.net/manual/en/function.array-slice.php

+0

反正做到这一点,而不会丢失的钥匙?将最有可能标记为答案array_slice是非常有用的,我可以得到我现在需要的... – 2012-04-10 14:45:43

+0

是的,只需将最后一个参数设置为“true”,以保存密钥。 – Brad 2012-04-10 14:48:30

+1

黄金!谢谢。只要它允许我接受...它就在文档中就是不是...... – 2012-04-10 14:49:49

2

像布拉德的答案,但使用ksort保存您的关联数组中的键:

ksort($arr); 
print_r(array_slice($arr, 0, 3, true)); 
+0

'asort()'保持关键关联,不是吗?我以为'ksort()'通过键进行了排序,这不是这里所需要的。他希望按价值排序。 – Brad 2012-04-10 15:01:45