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(10, 8) + $ha[1] * pow(10, 7) + $ha[2];
$hb = explode(",",$b);
$hb = $hb[0] * pow(10, 8) + $hb[1] * pow(10, 7) + $hb[2];
return ($ha<$hb)? -1 : ( ($ha==$hb)?0:1 );
}
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