Вы можете использовать SplMaxHeap
function maxN(array $numbers, $n)
{
$maxHeap = new SplMaxHeap;
foreach($numbers as $number) {
$maxHeap->insert($number);
}
return iterator_to_array(
new LimitIterator($maxHeap, 0, $n)
);
}
Использование ( демо ):
print_r( maxN( array(7,54,2,4,26,7,82,4,34), 4 ) );