Maison > développement back-end > tutoriel php > Comment puis-je trier un tableau multidimensionnel par plusieurs colonnes en PHP ?

Comment puis-je trier un tableau multidimensionnel par plusieurs colonnes en PHP ?

Barbara Streisand
Libérer: 2024-12-17 14:07:10
original
306 Les gens l'ont consulté

How Can I Sort a Multidimensional Array by Multiple Columns in PHP?

Tri des tableaux multidimensionnels par plusieurs colonnes

Tri des tableaux multidimensionnels par plusieurs colonnes peut être une tâche difficile. Cependant, PHP fournit un ensemble de fonctions qui le rendent relativement simple.

L'une de ces fonctions est array_multisort(). Cette fonction vous permet de trier un tableau selon plusieurs critères simultanément. Pour utiliser array_multisort(), vous devez d'abord créer un tableau de colonnes de tri et leurs données correspondantes.

Voici un exemple :

<?php
$mylist = array(
    array('ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york'),
    array('ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california')
);

# get a list of sort columns and their data to pass to array_multisort
$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'];
}

# sort by state asc, event_type desc, and date_start asc
array_multisort($sort['state'], SORT_ASC, $sort['event_type'], SORT_DESC, $sort['date_start'], SORT_ASC, $mylist);

print_r($mylist); // print the sorted array

?php>
Copier après la connexion

Depuis PHP 5.5.0, vous pouvez utiliser le syntaxe simplifiée suivante :

<?php
array_multisort(array_column($mylist, 'state'), SORT_ASC,
                array_column($mylist, 'event_type'), SORT_DESC,
                array_column($mylist, 'date_start'), SORT_ASC,
                $mylist);
?php>
Copier après la connexion

Le tableau $mylist sera désormais trié selon les colonnes spécifiées dans le format souhaité commande.

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