如何在出现两个或更多最高出现次数时输出最高出现的数组值?
问题描述:
我想使用PHP在下面的数组中得到最高的出现次数,但有2个最高发生次数。如何在出现两个或更多最高出现次数时输出最高出现的数组值?
$cars = array('volvo', 'benz','honda','volvo','toyota', 'toyota');
我用低于适用于单个结果的代码,但是当有两个最高发生,它只输出两个中的一个。
$c = array_count_values($cars);
$val = array_search(max($c), $c);
即使存在两个或更多类似的结果,如何获得数组中出现的最高频率?
答
对于这一点,你可以使用array_keys
其可选的第二个参数:
$counts = array_count_values($cars);
$top = array_keys($counts, max($counts));
从手册:
如果指定了可选的search_value [第二个参数],则只有钥匙该值将被返回。否则,返回数组中的所有键。
对于在OP给出的输入,结果是:
array(2) {
[0]=>
string(5) "volvo"
[1]=>
string(6) "toyota"
}
它工作得很好。谢谢 –