Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/09/2006, 17:12
GikaJavi
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 9 meses
Puntos: 0
La relación que dices no se debe perder (y que pierdes al ordenar al array 4) en realidad no existe explícitamente, sólo lo hace porque inicialmente has montado los arrays de esa forma (los haces coincidir tú). Puedes conseguir esa relación explícita usando claves. Quiero decir que puedes acceder a los valores de los tres primeros arrays usando índices asociativos del cuarto. Los tendrías que definir así:

Código PHP:
$Array1 = array("15"=>'srivas',"40"=>'alopez',"80"=>'psoto');
$Array2 = array("15"=>'250',"40"=>'320',"80"=>'85');
$Array3 = array("15"=>'35',"40"=>'85',"80"=>'63'); 
El $Array4 ya no te sirve, puesto que ahora se encuentra de algún modo como una serie de índices del resto de arrays. Ahora para ordenar cada uno de los arrays puedes usar la función krsort() que ordena vectores indexados asociativamente (nuestro nuevo caso) preservando los pares clave-valor iniciales, y lo hace de forma inversa (descendente).

Código PHP:
krsort($Array1SORT_NUMERIC);
krsort($Array2SORT_NUMERIC);
krsort($Array3SORT_NUMERIC); 
La constante SORT_NUMERIC sirve para que se traten los índices de los arrays como números (así 1000 sería mayor que 999, cosa que no sucede en una ordenación alfanumérica puesto que 9 > 1)

Finalmente, para recorrer los arrays ordenados y acceder a la clave puedes combinar list() con each() así:

Código PHP:
while (list($clave) = each($Array1))
    echo 
$clave." ".$Array1[$clave]." ".$Array2[$clave]." ".$Array3[$clave]."\n"
Esto imprimirá lo que creo que buscabas.