Maison > développement back-end > tutoriel php > Comment puis-je trier un tableau multidimensionnel en PHP sur plusieurs colonnes à l'aide de « array_multisort » ?

Comment puis-je trier un tableau multidimensionnel en PHP sur plusieurs colonnes à l'aide de « array_multisort » ?

Patricia Arquette
Libérer: 2024-12-31 06:26:09
original
961 Les gens l'ont consulté

How can I sort a multidimensional array in PHP by multiple columns using `array_multisort`?

Tri de tableaux multidimensionnels par plusieurs colonnes

Le tri d'un tableau multidimensionnel peut être une tâche difficile, en particulier lorsque l'on prend en compte plusieurs critères. Heureusement, PHP propose une solution élégante sous la forme de la fonction array_multisort.

Pour trier un tableau multidimensionnel, nous devons extraire les colonnes requises et les transmettre à array_multisort. Chaque colonne est triée indépendamment, avec l'ordre de tri spécifié comme SORT_ASC ou SORT_DESC.

Par exemple, étant donné le tableau d'entrée suivant :

$array = [
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california']
];
Copier après la connexion

Pour trier par état, puis type_événement, et enfin date_start, nous utiliserions le code suivant :

# extract columns
$state = array_column($array, 'state');
$event_type = array_column($array, 'event_type');
$date_start = array_column($array, 'date_start');

# sort by state desc, event_type asc, date_start asc
array_multisort($state, SORT_DESC, $event_type, SORT_ASC, $date_start, SORT_ASC, $array);
Copier après la connexion

PHP 5.5.0 introduit une syntaxe simplifiée utilisant array_column :

array_multisort(
    array_column($array, 'state'), SORT_DESC,
    array_column($array, 'event_type'),      SORT_ASC,
    $array
);
Copier après la connexion

En conséquence, le tableau trié ressemble à :

[
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
];
Copier après la connexion

En utilisant array_multisort, nous avons trié efficacement le tableau multidimensionnel en fonction de plusieurs colonnes, offrant un outil flexible et puissant solution d'organisation et de récupération des données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal