@IG51

Как вывести наиболее повторяющиеся элементы в массиве?

Здравствуйте, есть массив:
$arr = array('blue', 'blue', 'green', 'yellow', 'red', 'red', 'red', 'orange', 'orange', 'orange');
в котором blue повторяется 2 раза, red - 3 раза, orange - 3 раза.

Как вывести только те элементы, которые повторяются НАИБОЛЬШЕЕ число раз (если изначально это число не известно)? То есть если был бы какой-нибудь элемент, например purple, который повторялся 4 раза, то выводился бы только он
  • Вопрос задан
  • 560 просмотров
Пригласить эксперта
Ответы на вопрос 4
@BorisKorobkov Куратор тега PHP
Web developer
  1. Посчитать кол-во повторений
  2. Отсортировать по убыванию кол-ва повторений
  3. Взять первый элемент массива из предыдущего пункта
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
array_count_values, max
Ответ написан
Комментировать
Immortal_pony
@Immortal_pony Куратор тега PHP
$arr = array('blue', 'blue', 'green', 'yellow', 'red', 'red', 'red', 'orange', 'orange', 'orange');
$valuesQuantity = array_count_values($arr);
arsort($valuesQuantity);
$maxFrequentElement = key($valueQuantity);
Ответ написан
Комментировать
$arr = array('blue', 'blue', 'green', 'yellow', 'red', 'red', 'red', 'orange', 'orange', 'orange');
$counted_arr = array_count_values($arr);
$max_repeats_count = max($counted_arr);

foreach($counted_arr as $key => $value)
{
    if($value === $max_repeats_count) echo $key, '<br>';
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы