PHP:数组排序

时间:2011-09-14 14:35:05

标签: php

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分: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索引的

答案 1 :(得分:2)

将它们降序排序,提取3.第一个值,完成!

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