Maison >développement back-end >tutoriel php >Comment puis-je trier un tableau multidimensionnel en PHP en utilisant plusieurs colonnes avec `array_multisort()` ?

Comment puis-je trier un tableau multidimensionnel en PHP en utilisant plusieurs colonnes avec `array_multisort()` ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 14:23:15116parcourir

How can I sort a multidimensional array in PHP using multiple columns with `array_multisort()`?

Tri de tableaux multidimensionnels par plusieurs colonnes

Le tri de tableaux multidimensionnels à l'aide de plusieurs critères peut être une tâche complexe, mais elle est cruciale pour organiser et récupérer des données efficacement. Cette question explore comment trier un tableau multidimensionnel basé sur plusieurs colonnes à l'aide de array_multisort().

Comprendre array_multisort()

array_multisort() est une fonction PHP intégrée qui peut trier des tableaux avec plusieurs critères. Il prend un nombre arbitraire de tableaux en entrée, représentant les colonnes à trier. Les éléments correspondants de chaque tableau d'entrée sont comparés pour le tri.

Mise en œuvre

  1. Identifier les clés de tri : Déterminez les colonnes que vous souhaitez Trier par. Dans ce cas, vous avez « state », « event_type » et « date_start ».
  2. Obtenir les données de la colonne : Créez un tableau ($sort) pour stocker les valeurs du tri spécifié clés. Parcourez le tableau d'origine et extrayez les données pour chaque clé.
  3. Trier les colonnes : Appelez array_multisort() avec le tableau $sort. Spécifiez l'ordre de tri souhaité pour chaque colonne (par exemple, SORT_DESC pour 'state').
  4. Mettre à jour le tableau d'origine : Après le tri, array_multisort() modifie le tableau d'origine ($mylist).

Exemple Code

$sort = array();
foreach($mylist as $k=>$v) {
    $sort['state'][$k] = $v['state'];
    $sort['event_type'][$k] = $v['event_type'];
    $sort['date_start'][$k] = $v['date_start'];
}

array_multisort($sort['state'], SORT_ASC,
                $sort['event_type'], SORT_DESC,
                $sort['date_start'], SORT_ASC,
                $mylist);

Résultat :

Le tableau $mylist sera trié par ordre croissant par « état », par ordre décroissant par « event_type » et ordre croissant par 'date_start.'

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