Вывести наиболее повторяющееся значение в PHP

Итак, у меня есть массив, который выглядит примерно так:

$concat=array("DARK HORSE,KATY PERRY", "DARK HORSE,KATY PERRY", "WHEN IT RAINS,PARAMORE", "LITHIUM,NIRVANA")
//$concat = song and artist together separated by a comma

И мне нужно вывести значение, которое встречается чаще всего, поэтому в приведенном выше массиве мне нужно вывести строку = "DARK HORSE,KATY PERRY"

благодарю вас:)

3 ответа

echo key(array_count_values($concat));

Вы можете использовать array_count_values, чтобы получить массив с экземпляром в качестве ключа и частотой в качестве значения. Затем вам нужно отсортировать массив от высокого к низкому, поддерживая индекс (arsort), это важно.

Так:

//your array
$concat=array("DARK HORSE,KATY PERRY", "DARK HORSE,KATY PERRY", "WHEN IT RAINS,PARAMORE", "LITHIUM,NIRVANA")

//get all the frequencies
$frequencies = array_count_values($concat);

//make sure to sort it since array_count_values doesn't return a sorted array
arsort($frequencies);

//reset the array because you can't trust keys to get the first element by itself
reset($frequencies);

//get the first key
echo key($frequencies);

Вы можете использовать array_count_values ​​и array_keys для вывода результата:

$concat=array("DARK HORSE,KATY PERRY", "DARK HORSE,KATY PERRY", "WHEN IT RAINS,PARAMORE", "LITHIUM,NIRVANA");
//counts frequencies
$count_array = array_count_values($concat);

//gets the keys instead of the values
$count_keys = array_keys($count_array);

//echoes only the first key
echo current($count_keys);

//Or print all values and keys
print_r($count_array);
Другие вопросы по тегам