Выбрать из массива несколько максимальных значений

Есть массив $arr = [8, 4, 12, 9,17,22, 6 ,25,27,5]; Нужно взять из этого массива 2-3 самых больших значений. Кол-во элементов массива может быть разным - формируется от другого источника, чтобы отсортировать usort не вижу вариант.Функция max берет одно максимальное значение.


Ответы (1 шт):

Автор решения: Алексей Шиманский

Сортируем в обратном порядке и делаем срез с первого элемента в размере 2-ух штук

$arr = [8, 4, 12, 9,17,22, 6 ,25,27,5]; 

rsort($arr);
$result = array_slice($arr, 0, 2);

или

sort($arr);
$result = array_slice($arr, -2);
→ Ссылка