J'ai un tableau tel que:
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
)
)
Quelqu'un peut-il suggérer un moyen de trier / ordonner cela en fonction de l'élément datetime?
$a
et$b
contiendra les tableaux à l'intérieur$array
. Assurez-vous que vous n'avez pas mal orthographié le nom de la fonction.usort($array, array($this, "date_compare"))
pour que voususort()
sachiez que c'est une fonction / méthode de classe. Voir aussi: php.net/manual/enCela devrait fonctionner. J'ai converti la date en heure Unix via strtotime.
La version à une ligne utiliserait plusieurs méthodes de tableau:
la source
Depuis php7, vous pouvez utiliser l' opérateur Spaceship :
la source
http://us2.php.net/manual/en/function.array-multisort.php voir le troisième exemple:
Pour info, utiliser un horodatage unix (secondes à partir de 1970) ou mysql (YmdHis - 20100526014500) serait plus facile pour l'analyseur, mais je pense que dans votre cas, cela ne fait aucune différence.
la source
Tri du tableau d'enregistrements / assoc_arrays par champ datetime mysql spécifié et par ordre:
la source
str_to_upper
pourstrtoupper
.la source
Vous pouvez simplement résoudre ce problème en utilisant usort () avec la fonction de rappel. Pas besoin d'écrire une fonction personnalisée.
la source
Je suis tombé sur ce post mais je voulais trier par heure lors du retour des articles dans ma classe et j'ai eu une erreur.
Je recherche donc le site Web php.net et finis par faire ceci:
Vous pouvez trouver des exemples très utiles sur le site PHP.net
Mon tableau ressemblait à ceci:
la source
Pour les
'd/m/Y'
dates:où
$i
est l'index du tableaula source
Pour ceux qui cherchent encore à résoudre le problème de cette façon dans une classe avec une fonction sortByDate, voir le code ci-dessous
la source