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!