Foros del Web » Programando para Internet » PHP »

Ordenar un array de otro array.

Estas en el tema de Ordenar un array de otro array. en el foro de PHP en Foros del Web. Hola buenas, después de ejecutar una consulta en mysql la respuesta la guardo en un array pero necesito tener otro array ordenado del array de ...
  #1 (permalink)  
Antiguo 22/10/2008, 08:26
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 15 años, 10 meses
Puntos: 1
Ordenar un array de otro array.

Hola buenas, después de ejecutar una consulta en mysql la respuesta la guardo en un array pero necesito tener otro array ordenado del array de la consulta.

Lo que tengo de código es:

Cita:
$bbdd = mysql_connect($host, $usuario, $password) or die ("Could not connect: " . mysql_error()); //conectamos con base de datos.
$tablausuario = mysql_select_db($bd, $bbdd) or die(mysql_error());//seleccionamos base de datos fichaje de nuestra base de datos.
if (bbdd){
$cons_dias = 'select fecha,hora,entrada_salida from fichaje where user="'.$_SESSION[login].'" AND fecha >= "'.$primer_dia.'" AND fecha<= "'.$ultimo_dia.'" ORDER BY fecha ASC';
/* seleccionamos de la base de datos los datos que necesitaremos que serán la fecha, hora y la entrada o salida del usuario
registrado donde los registros que cogeremos sera el primer dia de la semana y los posteriores*/
//echo $cons_dias;
$respuesta = mysql_query($cons_dias, $bbdd) or die(mysql_error());; //ejecutamos la consulta.
$filas = mysql_num_rows($respuesta); //número de filas guardadas
echo '<br>';

// Guardamos resultado en un array
$c=0;
while($fila[$c] = mysql_fetch_array($respuesta))
{
// Consultamos día de semana
$dia = fRecibeFechaRetornaDia($fila[$c]["fecha"]); //esta funcion recibe una fecha y devuelve el dia de la semana que es LUNES, MARTES....
$entrada_salida = $fila[$c]["entrada_salida"];
$hora = $fila[$c]["hora"];
$array_ordenado [$dia][$entrada_salida][$hora] = $fila[$c];

//$fecha = $fila[$c]["fecha"];
//$hora = $fila[$c]["hora"];
//$in_out = $fila[$c]["entrada_salida"];
$c+=1;
// Array
// [0][0] Lunes - Entrada o $array_ordenado["LUNES"]["Entrada"]["hora"] para que me devuelva la hora de la entrada del lunes.
// [0][1] Lunes - Salida
// [0][2] Lunes - Suma
// [1][0] Martes - Entras ....


}//fin de while

echo print_r($array_ordenado); //me devuelve solo un "1".
}//fin de if
?>
Pero lo debo estar haciendo mal al asignar un array al otro.
  #2 (permalink)  
Antiguo 22/10/2008, 09:47
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Ordenar un array de otro array.

revisa la funcion ksort() la cual ordena una matriz por sus indices
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 22/10/2008, 10:14
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Ordenar un array de otro array.

Lo único que quiero hacer es lo que devuelve la consulta meterlo en un array tridimensional que tenga fecha, entrada_salida y hora. Lo único que la fecha con me la devuelve en la consulta con formato de fecha (aaaa-mm-dd) y con la función fRecibeFechaRetornaDia me la convierte a dia de la semana (LUNES,MARTES...DOMINGO).

Entonces a partir de hay lo que quiero es tener un array de este tipo: ARRAY("DIA","ENTRADA_SALIDA","HORA"].

Pero no se cómo asignarselo $dia,$entrada_salida,$hora a mi array en este caso $array_ordenado.

Lo llamo ordenado porque es mi ordenación pero realmente la consulta ya me lo devuelve ordenado por fecha.

No sé si me habré explicado bien....
  #4 (permalink)  
Antiguo 22/10/2008, 10:20
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Ordenar un array de otro array.

Es decir que pueda acceder al array de esta forma :
$array_ordenado["Lunes"]["Entrada"]["hora"] -> me devuelva la hora de entrada del lunes,
$array_ordenado["Lunes"]["Salida"]["hora"] -> me devuelva la hora de salida del lunes,
$array_ordenado["Martes"]["Entrada"]["hora"] ->me devuelva la hora de entrada del martes...

Creo que hay que utilizar un array tridimensional...
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 04:14.