2017-10-22 63 views
1

我想使用PHP在下面的数组中得到最高的出现次数,但有2个最高发生次数。如何在出现两个或更多最高出现次数时输出最高出现的数组值?

$cars = array('volvo', 'benz','honda','volvo','toyota', 'toyota'); 

我用低于适用于单个结果的代码,但是当有两个最高发生,它只输出两个中的一个。

$c = array_count_values($cars); 
$val = array_search(max($c), $c); 

即使存在两个或更多类似的结果,如何获得数组中出现的最高频率?

回答

1

对于这一点,你可以使用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" 
} 

See it live on 3v4l.org.

+0

它工作得很好。谢谢 –

相关问题