Hace tiempo que tuve la necesidad de ordenar una matriz multidimensional irregular, tenía tantos índices asociativos que el multisort no me funcionada como quería, y realicé dos funciones para poder ordenarlos tanto por índice como por valor.
Te paso la función para ordenar por valor, lo probé con tu array y funciona:
Código PHP:
Ver originalfunction ordena_mat($mat,$col,$aod="ASC"){
foreach($mat as $k =>$val){
if($k!=$col)
$ord[$k]=$val;
else
return $mat;
}
if($aod=="ASC")
else
foreach($ord as $k=>$nms)
$mat2[$k]=$mat[$k];
foreach($mat2 as $k =>$val){
$val=ordena_mat($val,$col,$aod);
$mat2[$k]=$val;
}
return $mat2;
}
//no creo que falte aclararlo, pero se manda a llamar así:
$mi_array=ordena_mat($mi_array,'indice');
Puede ordenar matrices tan profundas como sean, pues es recursiva.