Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/01/2014, 08:59
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: ordenando multiarray manteniendo clave (key)

Me alegra que te haya servido . Dos anotaciones más:

La primera, separé ambos arrays a ordenar en vez de trabajar sobre el mismo array. Ya que si lo hacía, la segunda vez que invocaba array_multisort no funcionaba. No entendí a que se debía este comportamiento. Ejemplo de lo que hablo:

Código PHP:
Ver original
  1. //ordenar votos
  2. array_multisort($votos, SORT_ASC, $arreglo);
  3. echo "Votos<br>";
  4. echo "<pre>";
  5. print_r( $arreglo );
  6. echo "</pre>";
  7.  
  8. //ordenar edad
  9. array_multisort($edad, SORT_DESC , $arreglo);
  10. echo "Edad<br>";
  11. echo "<pre>";
  12. print_r( $arreglo );
  13. echo "</pre>";

En el caso anterior solo me funcionó el primer sort

Lo segundo es que si vas a hacer un ordenamiento por dos columnas puedes hacer esto:

Código PHP:
Ver original
  1. $arreglo = array();
  2.  
  3. $arreglo['juan']=array('votos' => 60, 'edad' => 22);
  4. $arreglo['jose']=array('votos' => 35, 'edad' => 27);
  5. $arreglo['jorge']=array('votos' => 77, 'edad' => 29);
  6. $arreglo['jaime']=array('votos' => 44, 'edad' => 19);
  7. $arreglo['pedro']=array('votos' => 44, 'edad' => 22);
  8.  
  9. $votos = array();
  10. $edad = array();
  11. foreach( $arreglo as $key => $row ){
  12.     $votos[$key]  = $row['votos'];
  13.     $edad[$key] = $row['edad'];
  14. }
  15.  
  16. array_multisort($votos, SORT_ASC, $edad, SORT_DESC, $arreglo);
  17. echo "Votos<br>";
  18. echo "<pre>";
  19. print_r( $arreglo );
  20. echo "</pre>";

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.