如何处理一组相等的值和最大函数?

时间:2012-03-28 12:09:09

标签: php

在PHP中,max()返回数组中的最高值或输入中的最大值。如果我们有两个或更多同样最大的价值观,如何应对这种情况? 例如

$arr = array("a"=>1,"b"=>10, "c"=>10);

现在,应该max($arr)返回什么。理想情况下,它返回第一个遇到的最高值,b。如果我想要b和c作为结果怎么办?

2 个答案:

答案 0 :(得分:8)

如果你拥有该数组中的最高值(即max()返回的值),你可以只搜索数组中该值的所有值:

$arrOfKeys = array_keys($arr, max($arr));

答案 1 :(得分:3)

max()返回最大,而不是与之关联的数组键。它只会在您给出的示例中返回(int) 10

如果您想要一个具有最大值的键列表,您可以执行以下操作:

$max = max($array);
$maxKeys = array();
foreach ($array as $key => $val) {
  if ($val == $max) {
    $maxKeys[] = $key;
  }
}

print_r($maxKeys);
/*
  Array
  (
      [0] => b
      [1] => c
  )
*/