Если ваш массив еще не отсортирован, вы можете использовать arsort()
для сортировки по наивысшим результатам. Затем вы можете использовать array_slice()
для создания нового массива только с первыми 20 элементами массива:
arsort($data);
$data = array_slice($data, 0, 20);
arsort
означает «ассоциативная обратная сортировка». Это просто означает, что он действует на ассоциативные массивы, поддерживая их ключи, и сортирует массив в «обратном» (т.е. от высокого к низкому) порядке по его значениям.
array_slice
просто "нарезает" существующий массив. В этом примере он говорит: «возьмите массив $data
и верните новый массив, содержащий 20 его значений, начиная с первого.
Чтобы ответить на вопрос, который вы указали в комментариях, теги также будут отображаться в порядке по размеру, когда вы хотите, чтобы они были случайными. Вы можете сделать это, используя shuffle
в массиве после того, как вы захватите 20 лучших записей:
arsort($data);
$data = array_slice($data, 0, 20);
shuffle($data);