Вывести наиболее повторяющееся значение в 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 ответа
Вы можете использовать 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);