PHP:数组排序

Ada*_*ick -1 php

我在列表中有大约50个项目.我使用algorythm计算它们的值,然后在数组中添加它们的值.

假设我在循环结束时得到这个:

$vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...));
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能获得数组中3个最高值的键?

在上面的例子中,我想得到:

  • 8(102的关键)
  • 9(87的关键)
  • 3(77的关键)

PS:我不想在数据库中插入这些数据,然后使用Order子句选择它们,我确信有一种更简单的方法.

zer*_*kms 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) }
Run Code Online (Sandbox Code Playgroud)

结果与你想得到的结果不一样,因为php中的数组是0索引的