Foros del Web » Programando para Internet » PHP »

Indice del valor mas alto en un array

Estas en el tema de Indice del valor mas alto en un array en el foro de PHP en Foros del Web. Buenas, queria saber con que función (si existe alguna función para esto) puedo seleccionar el indice correspondiente al valor mas grande dentro de un array ...
  #1 (permalink)  
Antiguo 21/02/2006, 11:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 14 años, 1 mes
Puntos: 0
Indice del valor mas alto en un array

Buenas, queria saber con que función (si existe alguna función para esto) puedo seleccionar el indice correspondiente al valor mas grande dentro de un array cuyos componentes tienen por valor números.

Por ejemplo para:

$numeros[0]=1
$numeros[1]=10
$numeros[2]=3

La funcion que estoy buscando me debería devolver $numeros[1]...o mas bien el indice, o sea "1"...

Espero que alguien me pueda ayudar!
Muchas gracias.
  #2 (permalink)  
Antiguo 21/02/2006, 12:11
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Al parecer no hay una funcion, pero puedes crearla usando las funciones para matrices que están en:

http://www.php.net/manual/es/ref.array.php

Puedes por ejemplo ordenar la matriz (con asort() por ejemplo) y obtener el primero o ultimo valor segun si ordena ascendente o descendente y extraer con array_pop(), por ejemplo.
  #3 (permalink)  
Antiguo 21/02/2006, 12:18
 
Fecha de Ingreso: enero-2006
Mensajes: 54
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola, pues las funciones que te da el PHP para ordenar matrices son las siguientes:

arsort -- Ordena una matriz en orden inverso y mantiene la asociación de índices
asort -- Ordena una matriz y mantiene la asociación de índices

Pero no creo que te sirvan en si para lo que deseas. Mejor seria que tu mismo usando un for obtengas el mayor numero y el mayor indice, lo siguiente es un ajemplo con numeros que se generan aleatoriamente:

<?
for($i=0;$i<10;$i++)
{
$a[$i]=rand(1,100);
echo $i.'-'.$a[$i]."\t";
}
echo "<br>";
$mayor=$a[0];
$indice=0;
for($i=1;$i<10;$i++)
{
if($a[$i]>$mayor)
{
$mayor=$a[$i];
$indice=$i;
}
}
echo $indice.'-'.$mayor;
?>

Espero te sea util. Bye.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:43.