Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/02/2013, 05:21
Avatar de Fylux
Fylux
 
Fecha de Ingreso: junio-2012
Mensajes: 141
Antigüedad: 12 años, 4 meses
Puntos: 9
Respuesta: Encontrar la clave de un array ordenado por valores

Cita:
Iniciado por neodani Ver Mensaje
Buenas,

Tengo un array de 15 posiciones, cada posición corresponde con un id de mi tabla, y cada coincidencia que encuentro voy incrementando un contador para esa key del array. En resumen puedo llegar a tener un array de este tipo, ordenado de mayor a menor valores

Array
(
[2] => 51
[10] => 7
[8] => 3
[12] => 1
[11] => 0
[13] => 0
[15] => 0
[14] => 0
[9] => 0
[7] => 0
[3] => 0
[1] => 0
[4] => 0
[5] => 0
[6] => 0
[0] => 0
)

Lo que necesito es poder saber que clave del array es la que ha obtenido mayor puntuación y si ha habido empate técnico (si por ejemplo las claves 2 y 10, hubiesen tenido 52 puntos, que me diga eh empate encontrado).

He estado probando con arsort() para ordenar los valores del array de mayor a menor, tal y como se muestra arriba.

También he probado max() que te devuelve en este ejemplo el valor 52, pero yo lo que necesito es saber a que clave hizo referencia el valor máximo del array y si hubo otros valores iguales al valor mas grande.

Sabéis si existe alguna funcion que me ayude para esto?

Muchas gracias de antemano
Bueno, PHP no tiene una función que haga exclusivamente lo que tu quieres. Pero con la ayuda de las que has citado puedes usar un for o un foreach para comprobar lo que dices y si hay empates y demás de forma sencilla.
Por ejemplo para saber si hay un empate guardas el valor de ese campo en una variable temporal y cuando consultes el nuevo campo compruebas si era el mismo campo que el anterior.

Saludos.
__________________
Si todos escribiéramos sin faltas de ortografía, el mundo sería un lugar mejor.