从类似于以下内容的数组中,如何获得数组中最高值的索引.对于下面的数组,期望的结果将是"11".
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
Run Code Online (Sandbox Code Playgroud)
drA*_*erT 196
我的解决方案是:
$maxs = array_keys($array, max($array))
Run Code Online (Sandbox Code Playgroud)
注意:
这样您就可以检索与给定最大值相关的每个键.
如果您只对一个键感兴趣,只需使用$ maxs [0]
And*_*ovs 33
<?php
$array = array(11 => 14,
10 => 9,
12 => 7,
13 => 7,
14 => 4,
15 => 6);
echo array_search(max($array), $array);
?>
Run Code Online (Sandbox Code Playgroud)
array_search()返回值:
如果在数组中找到针,则返回针的键,否则返回FALSE.
如果在haystack中多次找到needle,则返回第一个匹配的键.要返回所有匹配值的键,请使用带有可选search_value参数的array_keys().
我知道它已经回答了,但这里有一个我觉得更优雅的解决方案:
arsort($array);
reset($array);
echo key($array);
Run Code Online (Sandbox Code Playgroud)
瞧!
其他答案可能有更短的代码,但这应该是最有效的并且易于理解。
/**
* 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93012 次 |
| 最近记录: |