如果我有: $ mainarray =一些具有重复值的事物
$array_counted = array_count_values ($mainarray);
如何在$ array_counted中找到最大值?
(这是我认为最常出现在$ mainarray中的元素。它主要是语法问题,因为我很确定我可以循环它,但不确定要使用的语法)
答案 0 :(得分:1)
您可以找到第一个最大值
$main_array = array(1,2,3,4,5,6,6,6,6,6,6,6);
$max_val = max($main_array);
查找所有max vals 在php< 5.3
function findmax($val)
{
global $max_val;
return $val == $max_val;
}
$max_values_array = array_filter($main_array,'findmax');
在php> = 5.3
$max_values_array = array_filter($main_array,function($val) use ($max_val) { return $val == $max_val; });
echo count($max_values_array);
的var_dump($ max_values_array);
答案 1 :(得分:0)
如果你不想循环,你可以对数组进行排序并从中取出第一个,最后一个项目。
答案 2 :(得分:0)
由于您将计数与值相关联:
$array_counted = array_count_values ($mainarray);
您只需要事后对其进行排序,然后返回第一个键(最常出现的元素):
arsort($array_counted);
print key($array_counted); // returns first key
答案 3 :(得分:0)
我使用arsort($ array_counted)对数组进行排序,同时保持索引。单独的rsort不起作用,因为array_count_values是一个关联数组。谢谢大家。