Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/01/2014, 16:51
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ordenar Array de Mayor a menor por valor de atributo

sub7, no estás utilizando correctamente el método de ordenación burbuja, el contador del segundo bucle, debe iniciar con el valor del contador del primer bucle pero aumentado en uno.

Un pequeño ejemplo con datos ficticios:

Código PHP:
Ver original
  1. $lista[]->votos = 5;
  2. $lista[]->votos = 3;
  3. $lista[]->votos = 8;
  4. $lista[]->votos = 4;
  5.  
  6. for ($i = 0; $i < $numTracks; $i++){
  7.     for($j = $i + 1; $j < $numTracks; $j++){
  8.         if($lista[$i]->votos > $lista[$j]->votos){
  9.             $temp = $lista[$j];
  10.             $lista[$j] = $lista[$i];
  11.             $lista[$i] = $temp;
  12.         }
  13.     }
  14. }
  15.  
  16. foreach ($lista as $d){
  17.     echo "Votos: " . $d->votos . "\n";
  18. }

Lo anterior imprime esto:

Código HTML:
Ver original
  1. Votos: 3
  2. Votos: 4
  3. Votos: 5
  4. Votos: 8

Y si quieres invertir el orden, solamente cambia el "mayor que" por "menor que" en la condición.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand