Дана строка с целыми числами от 1 до 500, разделенных запятыми. Числа могут повторяться.
Требуется взять 10 самых часто встречающихся и поместить в массив отсортированный по убыванию частоты.
Не придумал ничего лучше, кроме как посчитать частоту в отдельном массиве, в котором число является ключем, а частота - значением. Отсортировать arsort()
.
Топ-10 пришлось в отдельном цикле выделять, т.к. array_slice не сохраняет ключи.
Может есть какая-нибудь встроенная функция для таких вещей или можно как-то проще сделать?
ps: Код страшный, показывать стыдно.
UPDATE:
Огромное спасибо, в комментарияx помогли.
$arr = array_count_values(explode(',', $str));
arsort($arr);
$res = array_slice($arr, 0, 10, TRUE);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Возникла проблема при отображении загруженных изображенийГружу изображения на диск public
Есть таблица, которая хранит в себе адреса городов
Есть магазин на wordpress+woocommerceДля того, чтобы для потенциального покупателя сделать некоторые удобные вещи во время покупки, я запоминаю его...