Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Array, encontrar segundo valor maximo

Estas en el tema de Array, encontrar segundo valor maximo en el foro de PHP en Foros del Web. Como puedo encontrar el segundo y tercero valor máximo (mas alto) de un array, como max() consigo el primero como consigo el segundo y el ...
  #1 (permalink)  
Antiguo 01/05/2017, 20:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Array, encontrar segundo valor maximo

Como puedo encontrar el segundo y tercero valor máximo (mas alto) de un array, como max() consigo el primero como consigo el segundo y el tercero?
  #2 (permalink)  
Antiguo 01/05/2017, 20:54
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: Array, encontrar segundo valor maximo

Te dejo un ejemplo, puedes ordenarlos con asort() de mayor a menor y solo imprimir los primeros 3 que necesitas

Código PHP:
Ver original
  1. $array = array(100,2,3,4,5);
  2. arsort($array);
  3. $cuenta = 0;
  4. foreach($array as $primeros_tres){
  5.     echo $primeros_tres."\n";
  6.     $cuenta++;
  7.     if($cuenta == 3){
  8. $cuenta = 0;
  9.         exit();
  10.     }
  11. }
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 01/05/2017, 21:05
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: Array, encontrar segundo valor maximo

De hecho es un array multidimensional y ya esta recorriendo el array, agregar otro "for" me crea gran confusión, no hay algo mas simple como un

Código PHP:
Ver original
  1. max(array_col($jugador, $j));
  2.  
  3. seg(array_col($jugador, $j));
  4. ter(array_col($jugador, $j));
  #4 (permalink)  
Antiguo 01/05/2017, 21:26
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Array, encontrar segundo valor maximo

Si quieres algo mas sencillo lo tienes que crear por eso un lenguaje ofrece una serie de funciones que te facilitan hacer el trabajo.

Pudes mostrar tu arreglo multidimensional y como quieres determinar los valores máximos ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 01/05/2017, 21:32
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: Array, encontrar segundo valor maximo

Estoy intentando pasar una columna del array ordenado a un array simple nuevo y luego seleccionar el indice 1 que debería corresponder al segundo valor o estoy equivocado? con rsort()
  #6 (permalink)  
Antiguo 01/05/2017, 21:39
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Array, encontrar segundo valor maximo

Se me ocurre un método, pero me iré por lo fácil (disculpa):

Ordenar el arreglo de modo descendiente, obtener el mayor, que sería a[0] recorrer el arreglo hasta que haya un numero menor que a[0], esto para evitar repeticiones, esta sería la idea:

Código PHP:
Ver original
  1. $a = array(); //tu arreglo
  2. rsort($a);
  3. $max = $a[0];
  4. $sec = 0;
  5. for($k=1;$k<=sizeof($a);$k++){
  6.     if($a[$k] < $max){
  7.     $sec = $a[$k];
  8.     break;
  9.     }
  10. }

Saludos
  #7 (permalink)  
Antiguo 01/05/2017, 21:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: Array, encontrar segundo valor maximo

Eso estoy intentando pero en este caso no importa si se repite el segundo uso los dos o todos los que se repitan como segundo. ahora tengo problemas ordenando el array multidimensional y que se cree un nuevo indice.


*********** corrijo si voy a tener problemas con el tercero si se repite. pero para "seleccionarlo".
  #8 (permalink)  
Antiguo 01/05/2017, 22:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Array, encontrar segundo valor maximo

Puede ser algo como esto
Código PHP:
Ver original
  1. $column_array = array_column($array, $index);
  2.  
  3. rsort($column_array);
  4.  
  5. $second_third_values = array_slice($column_array, 1,2);

Ya lo demas es que metas eso en una función para que ocupe menos espacio
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 01/05/2017, 22:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 19 años
Puntos: 2
Respuesta: Array, encontrar segundo valor maximo

gracias a todos!

Etiquetas: encontrar, maximo, segundo, valor
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.