Eu tenho uma 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
)
)
Alguém pode sugerir uma maneira de classificar / ordenar isso com base no elemento datetime?
$a
e$b
manterá as matrizes dentro$array
. Certifique-se de que você não digitou incorretamente o nome da função.usort($array, array($this, "date_compare"))
para queusort()
saiba que é uma função / método de classe. Veja também: php.net/manual/en/…Isso deve funcionar. Eu converti a data para hora unix via strtotime.
A versão de uma linha usaria vários métodos de array:
fonte
No php7, você pode usar o operador Spaceship :
fonte
http://us2.php.net/manual/en/function.array-multisort.php veja o terceiro exemplo:
fyi, usar um unix (segundos de 1970) ou um timestamp mysql (YmdHis - 20100526014500) seria mais fácil para o analisador, mas acho que no seu caso não faz diferença.
fonte
Classificando a matriz de registros / assoc_arrays por campo de data e hora mysql especificado e por ordem:
fonte
str_to_upper
parastrtoupper
.fonte
Você pode simplesmente resolver este problema usando usort () com função de retorno de chamada. Não há necessidade de escrever nenhuma função personalizada.
fonte
Eu me deparei com esta postagem, mas queria classificar por tempo ao devolver os itens dentro da minha classe e recebi um erro.
Então, pesquiso o site php.net e acabo fazendo o seguinte:
Você pode encontrar exemplos muito úteis no site PHP.net
Meu array era assim:
fonte
Para
'd/m/Y'
datas:onde
$i
está o índice da matrizfonte
Para aqueles que ainda procuram um resolvido desta forma dentro de uma classe com uma função sortByDate, veja o código abaixo
fonte