Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/03/2014, 14:59
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Ordenar Matriz multidimensional por fecha DESC usando array_multisort

Código PHP:
Ver original
  1. <?php
  2.     $matriz = array();
  3.     $matriz["2014-03-08 16:37:47"] = array("objeto_id" => 698, "autor_id" => 164);
  4.     $matriz["2014-01-18 16:40:37"] = array("objeto_id" => 697, "autor_id" => 165);
  5.     $matriz["2014-01-05 17:48:27"] = array("objeto_id" => 696, "autor_id" => 165);
  6.    
  7.     $claves_ordenadas = sort(array_keys($matriz));
  8.    
  9.     foreach($claves_ordenadas as $clave)
  10.     {
  11.         // Hacer lo que se quiera con: $matriz[$clave]
  12.         echo($clave.' -> ');
  13.         var_dump($matriz[$clave]); 
  14.     }

Igual, primero verificaria de donde salen esos datos, si salen de una base de datos, le pediria a la base que ordene ella por mi.

NOTA: Esta tecnica funciona por el formato de las fechas, que pueden ser evaluadas como string, si estubiesen las fechas en otro formato, no quedaria otra que hacerlo que como dise Eleazan pasandolas a timestamp, ordenandolas y luego volverlas a fechas asi:

Código PHP:
Ver original
  1. <?php
  2.     $matriz = array();
  3.     $matriz["2014-03-08 16:37:47"] = array("objeto_id" => 698, "autor_id" => 164);
  4.     $matriz["2014-01-18 16:40:37"] = array("objeto_id" => 697, "autor_id" => 165);
  5.     $matriz["2014-01-05 17:48:27"] = array("objeto_id" => 696, "autor_id" => 165);
  6.    
  7.     function callback(&$valor, $clave, $mode){$valor = ($mode == 'toTime' ? strtotime($valor) : date($mode, $valor));}
  8.    
  9.     $claves_ordenadas = array_walk(sort(array_walk(array_keys($matriz), 'callback', 'toTime')), 'callback', 'Y-m-d H:i:s');
  10.    
  11.     foreach($claves_ordenadas as $clave)
  12.     {
  13.         // Hacer lo que se quiera con: $matriz[$clave]
  14.         echo($clave.' -> ');
  15.         var_dump($matriz[$clave]); 
  16.     }
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios