Lets say I have a simple 1D array with 10-20 entries. Some will be duplicate, How would I find out which entry is used the most? like..
$code = Array("test" , "cat" , "test" , "this", "that", "then");
How would I show "test" as the most used entry?
$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));
You can get a count of the number of occurrences of each value by using 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) } */
To get the most frequently occurring value, you can call max on the array and then access the (first) value with 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" */
If you wish to cater for multiple most-frequent values, then something like the following would work:
$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" } */