PHP:数组排序
我的清单上有大约50个项目。我使用算法计算它们的值,并将它们的值添加到数组中 假设我在循环结束时得到:PHP:数组排序,php,Php,我的清单上有大约50个项目。我使用算法计算它们的值,并将它们的值添加到数组中 假设我在循环结束时得到: $vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...)); 现在,如何获取数组中3个最高值的键? 在上面的例子中,我想得到: 8(102号键) 9(87的关键部分) 3(77号键) PS:我不想在DB中插入这些数据,然后用Order子句选择它们,我相信有一种更简单的方法 $vals = array(51, 23, 77, 3, 8, 31, 1
$vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...));
现在,如何获取数组中3个最高值的键?
在上面的例子中,我想得到:
- 8(102号键)
- 9(87的关键部分)
- 3(77号键)
$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索引的按降序排序,提取3。首先,完成
arsort($vals);
echo "$vals[0], $vals[1], $vals[2]";
哇,太快了!非常感谢您的帮助。我如何才能获得密钥而不是值?