Categorías: Desarrollo Tips

PHP: Ordenar arrays multidimesionales segun un valor

Hace unas semanas en el sitio de ldu.com.ec me solicitaron realizar un listado de los goleadores del equipo, pero guardar datos de dos fases la actual y la previa y segun la suma de las fases ordenar el ranking, sin embargo los datos se guarban en un archivo xml y pues primero tenia que parsearlo y pasar uno a uno los jugadores para sacar cuantos goles llevaban sumados y pues el sistema es un formulario muy simple y pues el editor podria insertar la informacion en orden y listo, pero…. que pasaria si el editor no los ordena? el ranking ya no seria un ranking seria una simple lista cosa que en un portal deportivo no da muchas informacion.

Asi que a raiz de que en ese momento mi internet esta hecho una mi@$#a pues me saque un algoritmo y saque el siguiente codigo el cual es para usarlo en joomla sin embargo con unas pequeñas modificaciones podrian pasar cualquier array.

$nparams = new mosParameters( $list );

$nums = 14;

$jugador = array();

$goles = array();

$first = array();

$second = array();

for($i=0;$i<$nums;$i++){

if(trim( $nparams->get('jugador'.$i)) != ""){

$gol = intval($nparams->get('goles'.$i)) + intval($nparams->get('l0goles'.$i));

$goles[$i] = $gol;

$first[$i] = intval($nparams->get('goles'.$i));

$second[$i] = intval($nparams->get('l0goles'.$i));

$jugador[$i] = stripslashes( $nparams->get('jugador'.$i));

$a = $i - 1;

if($gol > $goles[$a]){

while(($gol > $goles[$a]) AND ($a >= 0)){

$jugador[$a + 1] = $jugador[$a];

$first[$a + 1] = $first[$a];

$second[$a + 1] = $second[$a];

$goles[$a + 1] = $goles[$a];

$goles[$a] = intval($nparams->get('goles'.$i)) + intval($nparams->get('l0goles'.$i));

$first[$a] = intval($nparams->get('goles'.$i));

$second[$a] = intval($nparams->get('l0goles'.$i));

$jugador[$a] = stripslashes( $nparams->get('jugador'.$i));

$a = $a - 1;

}

}

$tnums++;

}

}

Si se fijan el while es el que se encarga de re-ordenar el valor goles si el gol anterior es menor al actual.

Corre la voz con tus amigos/contactos:
Compartir

Entradas recientes

  • Desarrollo

UIverse: Encuentra más de 3,000 elementos UI CSS gratuitos

UIverse es un proyecto Open-Source en donde diseñadores y desarrolladores web pueden encontrar más de…

11 meses hace
  • Inteligencia Artificial

La inteligencia artificial en la educación: retos y oportunidades

Foto de Element5 Digital en Unsplash La inteligencia artificial (IA) está revolucionando el mundo, y…

11 meses hace
  • Tecnología

12 Formas creativas de utilizar ChatGPT para mejorar la productividad en la oficina

La inteligencia artificial ha revolucionado la forma en que trabajamos, y ChatGPT, basado en la…

11 meses hace

Esta web usa cookies.