从类似下面的数组中,如何获得数组中最高值的索引。对于下面的数组,所需的结果将为“11”。
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
答案 0 :(得分:186)
我的解决方案是:
$maxs = array_keys($array, max($array))
<强> 注意:的强>
这样,您就可以检索与给定最大值相关的每个键。
如果您只对所有中的一个键感兴趣,只需使用 $ maxs [0]
答案 1 :(得分:30)
<?php
$array = array(11 => 14,
10 => 9,
12 => 7,
13 => 7,
14 => 4,
15 => 6);
echo array_search(max($array), $array);
?>
array_search()返回值:
如果在数组中找到针,则返回针的键,否则返回FALSE。
如果在haystack中多次找到needle,则会返回第一个匹配键。要返回所有匹配值的键,请使用带有可选search_value参数的array_keys()。
答案 2 :(得分:7)
我知道它已经回答了,但这是一个我觉得更优雅的解决方案:
arsort($array);
reset($array);
echo key($array);
瞧!
答案 3 :(得分:1)
这样的事情可以解决问题
function array_max_key($array) {
$max_key = -1;
$max_val = -1;
foreach ($array as $key => $value) {
if ($value > $max_val) {
$max_key = $key;
$max_val = $value;
}
}
return $max_key;
}
答案 4 :(得分:1)
我获得更高密钥的解决方案如下:
max(array_keys($values['Users']));
答案 5 :(得分:1)
其他答案可能包含更短的代码,但这个代码应该是最有效且易于理解的。
/**
* Get key of the max value
*
* @var array $array
* @return mixed
*/
function array_key_max_value($array)
{
$max = null;
$result = null;
foreach ($array as $key => $value) {
if ($max === null || $value > $max) {
$result = $key;
$max = $value;
}
}
return $result;
}
答案 6 :(得分:0)
$newarr=arsort($arr);
$max_key=array_shift(array_keys($new_arr));
答案 7 :(得分:0)
<?php
$array = array (
'11' => 14,
'10' => 9,
'12' => 7,
'13' => 7,
'14' => 4,
'15' => 6
);
foreach ($array as $key => $value) {
if ($value >= $max)
$max = max($array);
}
echo " The array in Maximum Value :".$max."<br/>";
?>
答案 8 :(得分:-7)
取自http://www.php.net/manual/en/function.max.php
的功能function max_key($array) {
foreach ($array as $key => $val) {
if ($val == max($array)) return $key;
}
}
$arr = array (
'11' => 14,
'10' => 9,
'12' => 7,
'13' => 7,
'14' => 4,
'15' => 6
);
die(var_dump(max_key($arr)));
像魅力一样工作