Возвращаемый индекс наибольшего значения в массиве

Из массива, который выглядит примерно так: как я могу получить индекс самого высокого значения в массиве. Для нижеприведенного массива желаемым результатом будет "11".

Array (

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

Ответ 1

Мое решение:

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

Примечание:
 таким образом вы можете получить каждую клавишу, связанную с заданным максимальным значением.

Если вас интересует только один ключ среди всех, просто используйте $maxs [0]

Ответ 2

<?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.

Ответ 3

Я знаю, что он уже ответил, но вот решение, которое я считаю более элегантным:

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

и вуаля!

Ответ 4

Что-то вроде этого должно сделать трюк

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

Ответ 5

Мое решение получить более высокий ключ выглядит следующим образом:

max(array_keys($values['Users']));

Ответ 6

$newarr=arsort($arr);
$max_key=array_shift(array_keys($new_arr));

Ответ 7

<?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

Другие ответы могут иметь более короткий код, но этот должен быть наиболее эффективным и легко понять.

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

Ответ 9

Функция взята из 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)));

Работает как шарм