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: 18 años, 4 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($arr, 0, $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