2012-04-10 27 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