Foros del Web » Programando para Internet » PHP »

Ordenar y mostrar array multidimensional. AYUDA!

Estas en el tema de Ordenar y mostrar array multidimensional. AYUDA! en el foro de PHP en Foros del Web. Hola Les hago esta consulta En el php defino el siguiente array: $matriz[0] [0]="12/01/2008"; $matriz[0] [1]="Adultos"; $matriz[0] [2]="Le Parc Punta del este"; $matriz[1] [0]="27/01/2008"; $matriz[1] ...
  #1 (permalink)  
Antiguo 28/01/2008, 10:52
 
Fecha de Ingreso: diciembre-2003
Mensajes: 310
Antigüedad: 20 años, 4 meses
Puntos: 4
Ordenar y mostrar array multidimensional. AYUDA!

Hola
Les hago esta consulta

En el php defino el siguiente array:

$matriz[0] [0]="12/01/2008";
$matriz[0] [1]="Adultos";
$matriz[0] [2]="Le Parc Punta del este";
$matriz[1] [0]="27/01/2008";
$matriz[1] [1]="Niños";
$matriz[1] [2]="Hotel Alvear";
$matriz[2] [0]="29/01/2008";
$matriz[2] [1]="Adolescentes";
$matriz[2] [2]="Hotel Holton Paris";


BAsicamente es un array con 3 columnas: FECHA, GENTE, LUGAR.
y los muestro en pantalla con esto:

for ($i=0;$i<count($matriz);$i++){
echo "<TR ALIGN='center'>";
echo "<TD><span class='style2'>\$matriz[$i]</FONT></TD>";
for ($j=0;$j<count($matriz[$i]);$j++){
echo "<TD><span class='style2'>".$matriz[$i][$j]."</FONT></TD>";
}
}


Se ve asi:
$matriz[0]----12/01/2008---Adultos----Le Parc Punta del este
$matriz[1]----27/01/2008------Niños--------Hotel Alvear
$matriz[2]----29/01/2008----Adolescentes----Hotel Holton Paris


De esta manera me lo muestra con el orden natural del array.

Pero lo que quiero ahora, es poder ordenar y mostrar por FECHA, GENTE y LUGAR, segun el usuario elija.
La eleccion del usuario la pordria manejar con una variables.

Como hago para ordenar el array con una variable q le pasaria desde un form ????

gracias

Última edición por florlangosta; 28/01/2008 a las 11:39
  #2 (permalink)  
Antiguo 28/01/2008, 12:00
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Ordenar y mostrar array multidimensional. AYUDA!

Hola lo ke podrías hacer es poner if's, por ejemplo:

$var=$_POST["busca_por"];//suponiendo ke busca_por guarde Fecha ó Gente ó Lugar

if($var=="Fecha"){
$sel="SELECT campo1, campo2, .... FORM tutabla where Fecha='$var' ORDER BY fecha ASC";
}
else{
if ($var=='Gente'){
//haces tu select en base a tu campo gente

}
else{
if ($var=='Lugar'){
//haces tu select en base a tu campo Lugar
}
}
}

Saludos!!!
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 28/01/2008, 12:02
 
Fecha de Ingreso: diciembre-2003
Mensajes: 310
Antigüedad: 20 años, 4 meses
Puntos: 4
Re: Ordenar y mostrar array multidimensional. AYUDA!

no no, pero esto no tiene base de datos !!!!
No puedo utilizar SELECT.

La matriz la defino dentro del PHP.
  #4 (permalink)  
Antiguo 28/01/2008, 12:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ordenar y mostrar array multidimensional. AYUDA!

Utiliza Array_multisort para ordenar datos ya en tu matriz.

Saludos.
  #5 (permalink)  
Antiguo 28/01/2008, 13:11
 
Fecha de Ingreso: diciembre-2003
Mensajes: 310
Antigüedad: 20 años, 4 meses
Puntos: 4
Re: Ordenar y mostrar array multidimensional. AYUDA!

Cita:
Iniciado por GatorV Ver Mensaje
Utiliza Array_multisort para ordenar datos ya en tu matriz.

Saludos.
por favor, me podrias dar un ejemplo de como hacerlo con los array que puse arriba???
Te lo super agradeceria, hace como 4 hs q estoy con esto y no le encuentro la vuelta.
  #6 (permalink)  
Antiguo 28/01/2008, 13:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ordenar y mostrar array multidimensional. AYUDA!

Te recomiendo veas el Manual de Array_Multisort, hay varios ejemplos muy claros y los podrás adaptar a tu arreglo.

Saludos.
  #7 (permalink)  
Antiguo 28/01/2008, 15:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 310
Antigüedad: 20 años, 4 meses
Puntos: 4
Re: Ordenar y mostrar array multidimensional. AYUDA!

hola
les cuento q ya lo resolvi.
lo ordeno asi:

for ($i=0;$i<count($matriz);$i++){
for ($j=0;$j<count($matriz[$i]);$j++){
if ($matriz[$i][$valor] < $matriz[$j][$valor]) {
$var1=$matriz[$i];
$var2=$matriz[$j];
$matriz[$i]=$var2;
$matriz[$j]=$var1;
}

}
}


la variable $valor es la que trae desde una seleccion del usuario.
Si es 0, ordena por fecha.
Si es 1, ordena por gente.
Si es 2, ordena por lugar.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:33.