Maison >développement back-end >tutoriel php >Comment trier un tableau PHP multidimensionnel par un élément Datetime ?

Comment trier un tableau PHP multidimensionnel par un élément Datetime ?

DDD
DDDoriginal
2024-12-16 15:10:21432parcourir

How to Sort a Multidimensional PHP Array by a Datetime Element?

Tri des tableaux multidimensionnels par élément de date en PHP

Considérons un tableau avec une structure similaire à celle ci-dessous :

$array = [
    [
        'id' => 2,
        'type' => 'comment',
        'text' => 'hey',
        'datetime' => '2010-05-15 11:29:45',
    ],
    [
        'id' => 3,
        'type' => 'status',
        'text' => 'oi',
        'datetime' => '2010-05-26 15:59:53',
    ],
    [
        'id' => 4,
        'type' => 'status',
        'text' => 'yeww',
        'datetime' => '2010-05-26 16:04:24',
    ],
];

Comment pouvons-nous trier ce tableau par l'élément 'datetime' ?

Utiliser usort() avec une comparaison personnalisée Fonction

La fonction usort() de PHP prend un tableau et une fonction de comparaison qui détermine l'ordre des éléments. Nous pouvons créer une fonction de comparaison personnalisée appelée date_compare comme suit :

function date_compare($a, $b)
{
    $t1 = strtotime($a['datetime']);
    $t2 = strtotime($b['datetime']);
    return $t1 - $t2;
}

Cette fonction extrait l'horodatage UNIX pour le champ 'datetime' de chaque enregistrement et renvoie la différence entre eux. Ces informations sont utilisées par usort() pour trier le tableau.

Application de la fonction de tri

Enfin, nous pouvons appliquer la fonction de tri au tableau en utilisant usort() :

usort($array, 'date_compare');

Cela triera le tableau par ordre croissant en fonction de l'élément 'datetime'.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn