Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/07/2012, 09:05
Avatar de h2swider
h2swider
 
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Ordenando una matriz

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar uasort() este te permite definir una función propia para ordenar.

Saludos.
Esa no la conocia, era perfectamente lo que necesitaba. Muchas gracias!

Cita:
Iniciado por patriciomase Ver Mensaje
ah ya entendí ... lo que tenes que hacer es dividir la consulta en 2 y las unis con union me explico?

primero te traes los que sean pendiente, y le das union todo lo demas, asi te quedan los pendientes primero

Código SQL:
Ver original
  1. SELECT * FROM tabla ..........
  2. INNER JOIN .....
  3. WHERE estadousuario LIKE 'pendiente'
  4. ORDER BY ....
  5. UNION
  6. SELECT * FROM tabla ..........
  7. INNER JOIN .....
  8. WHERE estadousuario NOT LIKE 'pendiente'
  9. ORDER BY ....

ahi tenes primero todos los pendientes, luego los otros
Esto también es muy interesante, no se me hubiese ocurrido.

Cita:
Iniciado por topo_bionico Ver Mensaje
Si no queres usar funciones no puedo obligarte.


No se como definís y cargas el array, así que hice uno imaginario. Trate de hacerlo simple.
Obviamente no tenes que usar los echo y print_r, solamente los puse para mostrar la salida, te aviso para que no te enojes pensando que no es como vos lo querias.
Algo así te sirve?

Código PHP:
<?php
$a1
=array('NOMBRE'=>"DARIO HOYOS",'EMAIL'=>'[email protected]','D_ESTADOUSUARIO'=>'Pendiente''N_SOLICITUD'=>'50');
$a2=array('NOMBRE'=>"JUAN CHOCLITO",'EMAIL'=>'[email protected]','D_ESTADOUSUARIO'=>'Aprobado','N_SOLICITUD'=>'68');
$a3=array('NOMBRE'=>"OSCAR PEREZ",'EMAIL'=>'[email protected]','D_ESTADOUSUARIO'=>'Rechazado','N_SOLICITUD'=>'34');
$a4=array('NOMBRE'=>"SERGIO DENIS",'EMAIL'=>'[email protected]','D_ESTADOUSUARIO'=>'Pendiente''N_SOLICITUD'=>'70');

$ordenar=array($a1,$a2,$a3,$a4);
$ordenado=array();//Array vacio para cargar los valores ordenados
foreach($ordenar as $row){ //Recorro el array
    
if ($row['D_ESTADOUSUARIO']=='Pendiente'){
        
array_unshift($ordenado,$row); //Si esta pendiente lo inserto al principio
    
}else{
        
array_push($ordenado,$row); //Sino, lo mando al final
    
}
    
print_r($row);
    echo 
'<br/>';
}
echo 
'------';
echo 
'<br/>';
foreach(
$ordenado as $row){ //Muestro el array ordenado
        
print_r($row);
        echo 
'<br/>';
}
?>
Realmente se noto la dedicación puesta en esta ultima.

Es la primera vez que me dan una respuesta tan amplia en el foro, 3 alternativas, 1 algorítmica, una desde sql, y otra desde el standard de PHP. Realmente impecables, espero que sirvan en un futuro a alguien mas.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Última edición por h2swider; 13/07/2012 a las 09:11