Foros del Web » Programando para Internet » PHP »

Ordenar array de arrays

Estas en el tema de Ordenar array de arrays en el foro de PHP en Foros del Web. Buenas, he estado mirando estos dias los foros y ayudas pero no encuentro la solucion. Tengo un array $autor $autor["luis"]["nombre"] = Luis $autor["luis"]["mensajes"] = 34 ...
  #1 (permalink)  
Antiguo 01/01/2005, 20:24
 
Fecha de Ingreso: agosto-2004
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Ordenar array de arrays

Buenas, he estado mirando estos dias los foros y ayudas pero no encuentro la solucion.
Tengo un array $autor
$autor["luis"]["nombre"] = Luis
$autor["luis"]["mensajes"] = 34

$autor["pedro"]["nombre"] = pedro
$autor["pedro"]["mensajes"] = 2

$autor["juan"]["nombre"] = juan
$autor["juan"]["mensajes"] = 10

y me gustaria ordenarlos por numero de mensajes. para que quede, luis, juan y pedro.

Sabeis como se puede hacer. Yo hago esto pero no me entiende el indice en numero, solo cuando pongo "luis" no cuando le llamo 1.

Una ayiuda por favor.
Gracias.
Iago.

for( $e=0 ; $e <= 6 ; $e++){
for($ee=($e+1) ;$ee<=7 ;$ee++){
$T1 = $autores[$e];
$T2 = $autores[$ee];
if ($T1["temas"]>=$T2["temas"]){
$auto[$e] = $T2;
$auto[$ee] = $T1;
}
}
}
  #2 (permalink)  
Antiguo 01/01/2005, 21:05
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 14 años, 10 meses
Puntos: 10
a ver si esto te sirve:

Código PHP:

$autor
[0]["nombre"] = "Luis";
$autor[0]["mensajes"] = 34;
$autor[1]["nombre"] = "Pedro";
$autor[1]["mensajes"] = 2;
$autor[2]["nombre"] = "juan";
$autor[2]["mensajes"] = 10;

function 
ordenar($marray){
    foreach (
$marray as $fila){
        
$s1[] = $fila["mensajes"];
    }
    
array_multisort($s1SORT_REGULARSORT_DESC$marray);
    return 
$marray;
}

$autor ordenar($autor); 
__________________
oohh... quisiera ser godines!!!
  #3 (permalink)  
Antiguo 02/01/2005, 07:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Conseguido...pero...

Muy buenas, al final lo he solucionado de ambas formas, pero....
Sabes porque cuando utilizo Foreach me aparecen sin ordenar?
Lo he probado, usando foreach y seguido con un for y con for 0, 1, 2 me aparece el array ordenado, osea como esta. Pero cuando uso foreach me aparece como desordenado y en realidad esta bien ordenado.
Si puedes me echas otro cable.
Muchas gracias.
Iago.
  #4 (permalink)  
Antiguo 13/01/2005, 02:38
 
Fecha de Ingreso: enero-2005
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Solo te falta hacre un reset del array:

Código PHP:
reset($autor); 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.