PHP: наиболее частое значение в массиве

Итак, у меня есть JSON Array:

[0] => 238 [1] => 7 [2] => 86 [3] => 79 [4] => 55 [5] => 92 [6] => 55 [7] => 7 [8] => 254 [9] => 9 [10] => 75 [11] => 238 [12] => 89 [13] => 238 

У меня будет больше значений в фактическом файле JSON. Но, взглянув на это, я вижу, что 238 и 55 повторяется больше, чем любое другое число. То, что я хочу сделать, это получить 5 самых повторяющихся значений в массиве и сохранить их в новом массиве PHP.

     $values = array_count_values($array); arsort($values); $popular = array_slice(array_keys($values), 0, 5, true); 
    • array_count_values() получает счетчик количества раз, когда каждый элемент появляется в массиве
    • arsort() сортирует массив по количеству вхождений в обратном порядке
    • array_keys() получает фактическое значение, которое является ключом массива в результатах от array_count_values()
    • array_slice() дает нам первые пять элементов результатов

    демонстрация

     $array = [1,2,3,4,238, 7, 86, 79, 55, 92, 55, 7, 254, 9, 75, 238, 89, 238]; $values = array_count_values($array); arsort($values); $popular = array_slice(array_keys($values), 0, 5, true); array ( 0 => 238, 1 => 55, 2 => 7, 3 => 4, 4 => 3, ) 

    Ключ должен использовать нечто вроде array_count_values() для подсчета количества вхождений каждого значения.

     <?php $array = [238, 7, 86, 79, 55, 92, 55, 7, 254, 9, 75, 238, 89, 238]; // Get array of (value => count) pairs, sorted by descending count $counts = array_count_values($array); arsort($counts); // array(238 => 3, 55 => 2, 7 => 2, 75 => 1, 89 => 1, 9 => 1, ...) // An array with the first (top) 5 counts $top_with_count = array_slice($counts, 0, 5, true); // array(238 => 3, 55 => 2, 7 => 2, 75 => 1, 89 => 1) // An array with just the values $top = array_keys($top_with_count); // array(238, 55, 7, 75, 89) ?>