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'] ];
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);
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 );
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'], ];
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!