在PHP中,max()
返回数组中的最高值或输入中的最大值。如果我们有两个或更多同样最大的价值观,如何应对这种情况?
例如
$arr = array("a"=>1,"b"=>10, "c"=>10);
现在,应该max($arr)
返回什么。理想情况下,它返回第一个遇到的最高值,b。如果我想要b和c作为结果怎么办?
答案 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
)
*/