Tengo una matriz como:
Array
(
[0] => Array
(
[id] => 2
[type] => comment
[text] => hey
[datetime] => 2010-05-15 11:29:45
)
[1] => Array
(
[id] => 3
[type] => status
[text] => oi
[datetime] => 2010-05-26 15:59:53
)
[2] => Array
(
[id] => 4
[type] => status
[text] => yeww
[datetime] => 2010-05-26 16:04:24
)
)
¿Alguien puede sugerir una forma de ordenar esto en función del elemento de fecha y hora?
$a
y$b
mantendrá las matrices dentro$array
. Asegúrese de no escribir mal el nombre de la función.usort($array, array($this, "date_compare"))
para queusort()
sepa que es una función / método de clase. Ver también: php.net/manual/en/…Esto debería funcionar. Convertí la fecha a hora Unix a través de strtotime.
La versión de una sola línea usaría múltiples métodos de matriz:
fuente
Desde php7 puedes usar el operador Spaceship :
fuente
http://us2.php.net/manual/en/function.array-multisort.php vea el tercer ejemplo:
Para su información, usar un Unix (segundos desde 1970) o una marca de tiempo mysql (YmdHis - 20100526014500) sería más fácil para el analizador, pero creo que en su caso no hace ninguna diferencia.
fuente
Ordenar matriz de registros / assoc_arrays por campo de fecha y hora de mysql especificado y por orden:
fuente
str_to_upper
astrtoupper
.fuente
Simplemente puede resolver este problema usando usort () con la función de devolución de llamada. No es necesario escribir ninguna función personalizada.
fuente
Me encontré con esta publicación, pero quería ordenar por tiempo al devolver los elementos dentro de mi clase y recibí un error.
Así que investigo el sitio web php.net y termino haciendo esto:
Puede encontrar ejemplos muy útiles en el sitio web PHP.net
Mi matriz se veía así:
fuente
Para
'd/m/Y'
fechas:donde
$i
esta el índice de la matrizfuente
Para aquellos que todavía buscan un resuelto de esta manera dentro de una clase con una función sortByDate, vea el código a continuación
fuente