配列内の最頻値を取りたい
array(‘aaa’,’bbb’,’bbb’,’ccc’);
みたいな配列から一番数が多い値(この例ならbbb)を取り出したい
ついでに$countに最大数を入れたいと思って書いたよ。
function return_max_count_item($list,&$count = null){ if(empty($list)){ $count = 0; return null; } //値を集計して降順に並べる $list = array_count_values($list); arsort($list); //最初のキーを取り出す reset($list); $before_key = key($list); $before_val = array_shift($list); $no1_list = array($before_key); //2番目以降の値との比較 foreach ($list as $key => $val){ if($before_val > $val){ break; }else{ // 個数が同値の場合は配列に追加する array_push($no1_list,$key); $before_key = $key; $before_val = $val; } } $count = $before_val; if(count($no1_list) > 1){ //同値の場合の処理があればここに書く、今回はarray_shiftで最初に追加したkeyを返した return array_shift($no1_list); }else{ return $before_key; } }