Foros del Web » Programando para Internet » PHP »

Ordenar un array multidimensional de fechas

Estas en el tema de Ordenar un array multidimensional de fechas en el foro de PHP en Foros del Web. Hola muy buenas: Tengo un array de fechas: Código: $fechas = array( array(2015-01-03 8:00:00","2015-01-02 16:00:00"), array("2015-01-05 10:00:00", "2015-01-05 14:00:00"), array("2015-01-15 8:30:00","2015-01-15 08:00:00"), array("2015-01-18 08:00:00", "2015-01-19 ...
  #1 (permalink)  
Antiguo 02/11/2015, 06:03
 
Fecha de Ingreso: noviembre-2015
Mensajes: 11
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta Ordenar un array multidimensional de fechas

Hola muy buenas:

Tengo un array de fechas:

Código:
$fechas = array(
            array(2015-01-03 8:00:00","2015-01-02 16:00:00"),
            array("2015-01-05 10:00:00", "2015-01-05 14:00:00"),
            array("2015-01-15 8:30:00","2015-01-15 08:00:00"),
            array("2015-01-18 08:00:00", "2015-01-19 8:30:00")
        );
y quiero ordenar las fechas para que me devuelva este array:

Código:
$fechas = array(
            array("2015-01-02 16:00:00", "2015-01-03 8:00:00"),
            array("2015-01-05 10:00:00", "2015-01-05 14:00:00"),
            array("2015-01-15 08:00:00", "2015-01-15 8:30:00"),
            array("2015-01-18 08:00:00", "2015-01-19 8:30:00")
        );
he probado con funciones miticas como sort() o array_multisort() y nada, no hay forma.
¿Alguna sugerencia?
  #2 (permalink)  
Antiguo 02/11/2015, 06:08
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: Ordenar un array multidimensional de fechas

Prueba de pasarlos todos a strtotime, ordenarlos y luego pasarlos a fecha de nuevo con el orden generado.
  #3 (permalink)  
Antiguo 02/11/2015, 06:26
 
Fecha de Ingreso: noviembre-2015
Mensajes: 11
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Ordenar un array multidimensional de fechas

Código:
 for ($i = 0; $i < count($fechas); $i++) {
            
            $ordenado = strtotime($fechas[$i][$i]);
            array_multisort($ordenado);
            date("d-m-Y h:i:s",strtotime($ordenado));
No se que estoy haciendo!!!! :/ jajaja
  #4 (permalink)  
Antiguo 02/11/2015, 06:29
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: Ordenar un array multidimensional de fechas

Recorre el array de fechas, pasa cada fecha a strtotime y lo añades a otro array.

Este último le haces un sort como tu quieras, luego lo recorres y lo transformas a fecha de nuevo.
  #5 (permalink)  
Antiguo 02/11/2015, 06:49
 
Fecha de Ingreso: noviembre-2015
Mensajes: 11
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Ordenar un array multidimensional de fechas

Ni idea, no me llega a salir
  #6 (permalink)  
Antiguo 02/11/2015, 06:53
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: Ordenar un array multidimensional de fechas

Te dejo un ejemplo y intentas hacerlo con tu problema:

Código PHP:
Ver original
  1. $fechas_nacimiento = array(
  2.     array(
  3.         'nombre' => 'Paco',
  4.         'fecha'  => '22-12-2012'
  5.     ),
  6.     array(
  7.         'nombre' => 'Luis',
  8.         'fecha'  => '30-08-2012'
  9.     ),
  10.     array(
  11.         'nombre' => 'Mar&iacute;a',
  12.         'fecha'  => '25-01-2013'
  13.     )
  14. );
  15.  
  16. function ordenar( $a, $b ) {
  17.     return strtotime($a['fecha']) - strtotime($b['fecha']);
  18. }
  19.  
  20. function mostrar_array($datos) {
  21.     foreach($datos as $dato)
  22.         echo "{$dato['fecha']} -&gt; {$dato['nombre']}<br/>";
  23. }
  24.  
  25.  
  26. usort($fechas_nacimiento, 'ordenar');
  27.  
  28. mostrar_array($fechas_nacimiento);
  #7 (permalink)  
Antiguo 04/11/2015, 04:46
 
Fecha de Ingreso: noviembre-2015
Mensajes: 11
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Ordenar un array multidimensional de fechas

Ese ejemplo no es ni parecido, yo quiero ordenar un array completo de fechas, no un array con identificadores, no es lo mismo :s
  #8 (permalink)  
Antiguo 04/11/2015, 05:10
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: Ordenar un array multidimensional de fechas

No te pondré el resultado exacto, he dicho que es un ejemplo y que tienes que adaptarlo.

La cuestión es como hacerlo, teniendo variables diferentes, ahí te enseña como ordenar un array de arrays que contienen un nombre y una fecha, tu array es diferente pero la función ha de ser la misma que es ordenarla por fechas, por lo que has de espavilarte para hacerlo, si al intentarlo con tu código no te funciona entonces pide mas ayuda, pero igualmente es una questión muy preguntada por internet y hay muchos mas ejemplos, yo te he informado de que ruta debes tomar pero no te he dado la dirección exacta.
  #9 (permalink)  
Antiguo 04/11/2015, 07:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ordenar un array multidimensional de fechas



Cita:
Iniciado por JonImanol Ver Mensaje
Ese ejemplo no es ni parecido, yo quiero ordenar un array completo de fechas, no un array con identificadores, no es lo mismo :s
Un array es un array, asociativo o indexado no es más que un simple array, y se puede acceder de la misma forma ¿por qué te bloqueas de esa manera tan negativa?

La única diferencia es el índice, que en lugar de ser numérico (como en tu caso) es asociativo:

Código PHP:
Ver original
  1. $a['fecha']; // el ejemplo
  2. $a[0]; // tu código

Sólo tienes que pensar poquito más, no seas vago.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fecha, multidimensional
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 19:23.