当恰好有两个或更多次出现时,如何输出最高出现的数组值?

时间:2017-10-22 01:14:23

标签: php arrays

我正在尝试使用PHP在下面的数组中获得最高出现次数,但最多出现2次。

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

我使用下面的代码对单个结果起作用,但是当出现两次最高时,它只输出两个中的一个。

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

即使有两个或两个以上相似的结果,我怎样才能获得数组中出现的最高值?

1 个答案:

答案 0 :(得分: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.