Ver Mensaje Individual
  #14 (permalink)  
Antiguo 13/10/2012, 08:39
Knime
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Como ordenar un array segun otro array

Cita:
Iniciado por Nemutagk Ver Mensaje
Teoricamente es muy sencillo, podrías hacer algo así, pero no estoy del todo seguro si te eh entendido bien...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $orden = array('juan','pedro','alejando','alberto','jesus','alfredo');
  4.  
  5. $desorden = $orden;
  6.  
  7. //"desordenamos"
  8. shuffle($desorden);
  9.  
  10. //vemos como se desordenaron
  11. echo 'Array ordenado '.implode(',',$orden).'</br>';
  12. echo 'Array desordenado '.implode(',', $desorden).'</br>';
  13.  
  14. //volvemos a ordenar
  15. $ordenado = array();
  16.  
  17. $numItems = count($orden);
  18.  
  19. for($i=0; $i<$numItems; $i++) {
  20.     $buscar = array_search($orden[$i], $desorden);
  21.  
  22.     if ($buscar !== false) {
  23.         $ordenado[] = $desorden[$buscar];
  24.     }
  25. }
  26.  
  27. //finalmente vemos como se ordeno
  28. echo 'Array ordenado de nuevo '.implode(',',$ordenado).'</br>';
  29. echo 'Array desordenado '.implode(',', $desorden);
Código:
Muchisimas gracias, si, este era el código que buscaba, como lo tuve que usar fue así:


$orden = array('juan','pedro','alejando','alberto','jesus','alfredo');
 
$desorden = array('alejandro','juan','pedro','alberto','alfredo','jesus');
 
//volvemos a ordenar
$ordenado = array();
 
$numItems = count($orden);
 
for($i=0; $i<$numItems; $i++) {
    $buscar = array_search($orden[$i], $desorden);
 
    if ($buscar !== false) {
        $ordenado[] = $desorden[$buscar];
    }
}
 
//finalmente vemos como se ordeno
echo implode(',',$ordenado).'</br>';
Y con esto no importa que falten datos en el array desordenado, ordena con los datos que posee.

Mil gracias enserio me has ayudado como no tienes idea.