2011-09-14 30 views
-1

リストには約50の項目があります。私はalgorythmを使ってその値を計算し、その値を配列に追加します。PHP:配列順序

は、ループが終わったとき、私はこれを取得すると仮定します。今

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

、どのように私は彼らに、アレイ内の3つの最高値の鍵を得ることができますか?上記の例で

、私が取得したい:

  • 9(102のキー)(87のキー)
  • 3(77のキー)

PS:これらのデータをDBに挿入し、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]";