2011-09-14 77 views
-1

我有一個列表中的約50項。我使用algorythm計算它們的值,並將它們的值添加到數組中。PHP:陣列訂購

想我得到這個當循環結束:

$vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...)); 

現在,我怎麼能得到他們的3個最高值的鍵數組中?

在上述例子中,我想獲得:

  • 8(102鍵)
  • 9(87鍵)
  • 3(77鍵)

PS:我不想在數據庫中插入這些數據,然後用Order子句選擇它們,我相信有一個更簡單的方法。

回答

6
$vals = array(51, 23, 77, 3, 8, 31, 17, 102, 87); 
arsort($vals);  
$keys = array_slice(array_keys($vals), 0, 3); 

var_dump($keys); // array(3) { [0]=> int(7) [1]=> int(8) [2]=> int(2) } 

結果是不是你想要得到一樣的,因爲在PHP中的數組是0索引

+0

哇,這很快!非常感謝您的幫助。 –

+0

如何獲取密鑰而不是值? –

2

排序他們降,提取3.第一的價值觀,做!

arsort($vals); 
echo "$vals[0], $vals[1], $vals[2]";