直截了当的问题 -
如果$ n = 3,
和输入是 -
Array
(
[04] => 3
[07] => 4
[01] => 5
[06] => 5
[05] => 5
[03] => 6
[08] => 6
[02] => 7
[09] => 8
[12] => 9
[10] => 10
[15] => 10
[19] => 11
[20] => 11
[13] => 12
[21] => 12
[16] => 13
[14] => 14
[22] => 14
[23] => 15
[11] => 15
[00] => 15
[17] => 17
[18] => 17
)
Run Code Online (Sandbox Code Playgroud)
输出应该是 -
Array
( [14] => 14
[22] => 14
[23] => 15
[11] => 15
[00] => 15
[17] => 17
[18] => 17
)
Run Code Online (Sandbox Code Playgroud)
谢谢大家,求助.
就像是:
function biggest_n(array $a, $n)
{
$u = array_unique($a);
if (count($u) <= $n) return $a;
rsort($u);
$val = $u[$n - 1];
return array_filter($a, function($e) use($val) { return $e >= $val; });
}
Run Code Online (Sandbox Code Playgroud)