返回数组中最高值的索引

从看起来如下所示的数组中,如何获得数组中最高值的索引。 对于下面的数组,所需的结果将是“11”。

Array ( [11] => 14 [10] => 9 [12] => 7 [13] => 7 [14] => 4 [15] => 6 ) 

我的解决scheme是:

 $maxs = array_keys($array, max($array)) 

注意:
这样您可以检索与给定的最大值相关的每个键

如果你只对一个键感兴趣,只需使用$ maxs [0]

 <?php $array = array(11 => 14, 10 => 9, 12 => 7, 13 => 7, 14 => 4, 15 => 6); echo array_search(max($array), $array); ?> 

array_search()返回值:

如果在数组中find它,返回针的键;否则返回FALSE。

如果在干草堆中发现不止一次针,则返回第一个匹配键 。 要返回所有匹配值的键,请改用带有可选search_value参数的array_keys()。

我知道它已经被回答了,但是这里有一个我觉得更优雅的解决scheme:

 arsort($array); reset($array); echo key($array); 

瞧!

像这样的事情应该做的伎俩

 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; } 

我的解决scheme获得更高的关键如下:

 max(array_keys($values['Users'])); 
 $newarr=arsort($arr); $max_key=array_shift(array_keys($new_arr)); 
 <?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/>"; ?> 

其他的答案可能会有更短的代码,但这个应该是最有效的,很容易理解。

 /** * 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; } 

function取自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))); 

奇迹般有效