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
Barbara Streisandoriginal
2024-12-17 14:07:10308parcourir

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>

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>

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!

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