2011-05-25 6 views
77

¿Cómo puedo obtener con PHP la clave/índice más alto en una matriz? Sé cómo hacerlo por los valores.Buscar la clave/índice más alto en una matriz

E.g. A partir de esta matriz Me gustaría llegar "10" como un valor entero:

$arr = array(1 => "A", 10 => "B", 5 => "C"); 

sé cómo podría programarlo, pero me preguntaba si no como una función para esto también.

Respuesta

171

Esto debería funcionar bien

$arr = array(1 => "A", 10 => "B", 5 => "C"); 
max(array_keys($arr)); 
+2

Más simple de lo que pensaba. E incluso podría recordar en un año o dos lo que está haciendo este código. –

+0

¿Sabes si funcionaría si una clave se configura así: $ arr = array (1 => "A", 10 => "B", 5 => "C", "15" => " RE"); –

+2

@ Raffael Luthiger intente probarlo y vea si obtiene los resultados correctos. –

2
$keys = array_keys($arr); 
$keys = rsort($keys); 

print $keys[0]; 

debe imprimir "10"

27

Usted puede obtener el máximo clave de esta manera:

<?php 
$arr = array("a"=>"test", "b"=>"ztest"); 
$max = max(array_keys($arr)); 
?> 
+0

Lo siento, alguien publicó la misma respuesta antes que yo. –

+1

No hay problema. Todavía te doy un punto. Porque la respuesta es correcta. –

-6
<?php 
$array = array(1 => "A", 10 => "B", 5 => "C"); 

foreach ($array as $key => $value) { 
    if ($value >= $max) 
    $max = max(array_keys($array));  
} 
echo " The array in largest number :".$max."<br/>"; 
?> 
+0

Tu código es demasiado complicado. Por favor, mira la respuesta que acepté. Este es mucho más fácil. –

+0

sí @RaffaelLuthiger lo sé, piénselo como una alternativa al – Hanifeoglu

+0

No tiene sentido. Está haciendo un ciclo sin motivo, ya que max se encuentra en el primero. El bucle ni siquiera tiene efecto excepto para ejecutar max varias veces de la misma manera –

Cuestiones relacionadas