Допустим, у меня есть простой массив 1D с 10-20 элементами. Некоторые будут дублироваться, как бы я узнал, какая запись используется больше всего? как..
$code = Array("test" , "cat" , "test" , "this", "that", "then");
Как бы я показал «тест» как наиболее часто используемую запись?
$code = Array("test" , "cat" , "test" , "this", "that", "then"); function array_most_common($input) { $counted = array_count_values($input); arsort($counted); return(key($counted)); } echo '<pre>'; print_r(array_most_common($code));
Вы можете подсчитать количество вхождений каждого значения с помощью array_count_values .
$code = array("test" , "cat" , "cat", "test" , "this", "that", "then"); $counts = array_count_values($code); var_dump($counts); /* array(5) { ["test"]=> int(2) ["cat"]=> int(2) ["this"]=> int(1) ["that"]=> int(1) ["then"]=> int(1) } */
Чтобы получить наиболее часто встречающееся значение, вы можете вызвать max в массиве, а затем получить доступ к первому значению с помощью array_search .
$code = array("test" , "cat" , "cat", "test" , "this", "that", "then"); $counts = array_count_values($code); $max = max($counts); $top = array_search($max, $counts); var_dump($max, $top); /* int(2) string(4) "test" */
Если вы хотите обслуживать несколько наиболее частых значений, то работает следующее:
$code = array("test" , "cat" , "cat", "test" , "this", "that", "then"); $counts = array_count_values($code); $max = max($counts); $top = array_keys($counts, $max); var_dump($max, $top); /* int(2) array(2) { [0]=> string(4) "test" [1]=> string(3) "cat" } */
Использовать array_count_values