我在列表中有大约50个项目。我使用algorythm计算它们的值,然后在数组中添加它们的值。
假设循环结束时我得到了这个:
$vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...));
现在,我怎样才能获得数组中3个最高值的键?
在上面的例子中,我想得到:
PS:我不想在数据库中插入这些数据,然后使用Order子句选择它们,我相信有更简单的方法。
答案 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]";