Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/08/2008, 14:37
Avatar de Mort20
Mort20
 
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: ordenar array de arrays

Tendrás que implementar algún algorismo de ordenación en PHP y modificarlo levemente para hacer eso. Por google he encontrado el algorismo de ordenación por fusión (también llamado mergesort):
Código PHP:
<?php
function mergesort($arr) {
    
$sl round((count($arr)/2));
    
$sr count($arr)-$sl;
    
$l array_slice($arr0$sl);
    
$r array_slice($arr$sl);
 
    if(
$sl 1) {
        
$l self::mergesort($l);
    }
    if(
$sr 1) {
        
$r self::mergesort($r);
    }
    
$res self::merge($l$r);
    return 
$res;
 
}
 
function 
merge($l$r) {
    
$lc $rc $mc 0;
    
$res = array();
    
$cl count($l);
    
$cr count($r);
    while(
$lc $cl && $rc $cr) {
        if(
$l[$lc] < $r[$rc]) {
 
            
$res[$mc++] = $l[$lc++];
        }
        else {
            
$res[$mc++] = $r[$rc++];
        }
 
 
 
 
    }
    
$cl_t count($l);
    while(
$lc $cl_t) {
        
$res[$mc++] = $l[$lc++];
    }
    
$cr_t count($r);
    while(
$rc $cr_t) {
        
$res[$mc++] = $r[$rc++];
    }
    return 
$res;
}
?>
Por si no lo conoces, es del tipo "divide y vencerás" y además estable. Se trata de ir diviendo el array por dos y así sucesivamente hasta obtener array's de un sólo elemento. Luego como toda función recursiva vuelve al proceso inverso y van quedando conjuntos de array's ordenados que se fusionan (obviamente, un array con un único elemento siempre está ordenado) y va creciendo hasta quedar de nuevo tu array original y ordenado.

Sólo deberás aplicarle cuatro cambios para que ordene por $top[$c][$promedio].
__________________
Un Lannister siempre cumple sus promesas