Из массива, который выглядит примерно так, как я могу получить индекс самого высокого значения в массиве. Для приведенного ниже массива желаемый результат будет «11».
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
reset($arr); echo key($arr);
:)Ответы:
Мое решение:
Примечание:
таким образом вы можете получить каждый ключ, связанный с заданным максимальным значением .
Если вас интересует только один ключ из всех, просто используйте $ maxs [0]
источник
array_keys
), и вы получите только один ключ, соответствующий максимум значение<?php $array = array(11 => 14, 10 => 9, 12 => 7, 13 => 7, 14 => 4, 15 => 6); echo array_search(max($array), $array); ?>
array_search () возвращаемые значения:
Возвращает ключ для иглы, если он найден в массиве, в противном случае - FALSE.
Если игла найдена в стоге сена более одного раза, возвращается первый соответствующий ключ . Чтобы вернуть ключи для всех совпадающих значений, используйте вместо этого array_keys () необязательный параметр search_value.
источник
Я знаю, что на него уже ответили, но вот решение, которое я считаю более элегантным:
arsort($array); reset($array); echo key($array);
и вуаля!
источник
reset
не надо, кстати.В других ответах может быть более короткий код, но этот должен быть наиболее эффективным и легким для понимания.
/** * 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 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; }
источник
Мое решение для получения более высокого ключа следующее:
max(array_keys($values['Users']));
источник
источник
<?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/>"; ?>
источник
Функция взята из 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)));
Работает как шарм
источник