De una matriz que se parece a lo siguiente, ¿cómo puedo obtener el índice del valor más alto en la matriz? Para la siguiente matriz, el resultado deseado sería '11'.
Array (
[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6
)
reset($arr); echo key($arr);
:)Respuestas:
Mi solucion es:
Nota: de
esta manera puede recuperar todas las claves relacionadas con un valor máximo dado.
Si solo está interesado en una clave entre todas, simplemente use $ maxs [0]
fuente
array_keys
) y obtendrás solo una clave correspondiente al máximo valor<?php $array = array(11 => 14, 10 => 9, 12 => 7, 13 => 7, 14 => 4, 15 => 6); echo array_search(max($array), $array); ?>
array_search () valores de retorno:
Devuelve la clave de la aguja si se encuentra en la matriz, FALSO en caso contrario.
Si la aguja se encuentra en el pajar más de una vez, se devuelve la primera clave coincidente . Para devolver las claves para todos los valores coincidentes, use array_keys () con el parámetro opcional search_value en su lugar.
fuente
Sé que ya está respondida, pero aquí hay una solución que encuentro más elegante:
arsort($array); reset($array); echo key($array);
¡y voilá!
fuente
reset
no es necesario, por cierto.Otras respuestas pueden tener un código más corto, pero esta debería ser la más eficiente y fácil de entender.
/** * 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; }
fuente
Algo como esto debería hacer el truco
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; }
fuente
Mi solución para obtener la clave más alta es la siguiente:
max(array_keys($values['Users']));
fuente
fuente
<?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/>"; ?>
fuente
Función tomada de 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)));
Funciona de maravilla
fuente