Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/12/2007, 20:23
Avatar de xknown
xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Re: ordenar con ksort() y dos criterios yuxtapuestos

Cambiando un poco tu función, puedes ordenar tu extraño arreglo en función a esos tres valores:
Código PHP:
function criterio($a,$b) {
    
$ha explode(",",$a);
    
$ha $ha[0] * pow(108) + $ha[1] * pow(107) + $ha[2];
    
$hb explode(",",$b);
    
$hb $hb[0] * pow(108) + $hb[1] * pow(107) + $hb[2];
    return (
$ha<$hb)? -: ( ($ha==$hb)?0:);
}
uksort($array"criterio"); 
El inconveniente de este método es que el peso que se asigna a una columna debe ser mayor al número máximo de la columna que está más a la derecha (en el ejemplo pongo arbitrariamente 10^8 para la primera y 10^7 para la segunda). Por otro lado, tampoco es muy flexible para ordenar las "columnas" por separado, es decir ordenar la primera columna en orden descendente, luego la segunda columna en orden ascendente ... etc.

El último punto que menciono en el párrafo anterior creo que podrías hacerlo con array_multisort, pero para eso necesitas un arreglo del tipo:
Código:
Array
(
    [1] => Array
        (
            [0] => 264
            [1] => 26
            [2] => 38
        )

    [3] => Array
        (
            [0] => 25
            [1] => 56
            [2] => 60
        )
)
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño