如何获取php数组中的前3个值及其索引

use*_*254 5 php arrays indexing max

我想获得最高值、第二高值和第三高值

例如,我有一个数组,如:

$n = array(100,90,150,200,199,155,15,186);

我知道获取最大值及其索引的方法:

echo max($n); //200 $maxs = array_keys($n, max($n)); echo $maxs[0]; //3

我想获得前 3 个值及其索引,例如: value: 200, 199, 186 index:3,4,7

我怎样才能得到它们?

Mic*_*ibt 3

这应该可以解决问题:

function maxNitems($array, $n = 3){
    asort($array);
    return array_slice(array_reverse($array, true),0,$n, true);
}
Run Code Online (Sandbox Code Playgroud)

使用如下:

maxNitems(array(100,90,150,200,199,155,15,186));
Run Code Online (Sandbox Code Playgroud)