Fonction array_multisort() de PHP

Exemple

Retourne un tableau trié en ordre croissant :

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);;
print_r($a);
?>

Exemple de exécution

Définition et utilisation

La fonction array_multisort() retourne un tableau trié. Vous pouvez entrer un ou plusieurs tableaux. La fonction trie d'abord le premier tableau, puis les autres tableaux, et si deux ou plusieurs valeurs sont identiques, elle trie le tableau suivant.

Remarque :Les noms de clé de chaîne seront conservés, mais les noms de clé numériques seront réindexés, commençant à 0 et augmentant de 1.

Remarque :Vous pouvez définir les paramètres d'ordre et de type de tri après chaque tableau. Si non définis, chaque paramètre de tableau utilisera la valeur par défaut.

Syntaxe

array_multisort(array1,ordre de tri,type de tri,array2,array3...)
Paramètres Description
array1 Requis. Définir un tableau.
ordre de tri

Optionnel. Définir l'ordre de tri. Les valeurs possibles sont :

  • SORT_ASC - Par défaut. Trier par ordre croissant (A-Z).
  • SORT_DESC - Trier par ordre décroissant (Z-A).
type de tri

Optionnel. Définir le type de tri. Les valeurs possibles sont :

  • SORT_REGULAR - Par défaut. Trier chaque élément dans l'ordre habituel (ASCII standard, sans changer le type).
  • SORT_NUMERIC - Traiter chaque élément comme un nombre.
  • SORT_STRING - Traiter chaque élément comme une chaîne de caractères.
  • SORT_LOCALE_STRING - Traiter chaque élément comme une chaîne de caractères, basé sur la configuration régionale actuelle (puisque setlocale() peut être utilisé pour la modifier).
  • SORT_NATURAL - Traiter chaque élément comme une chaîne de caractères, en utilisant un tri naturel similaire à natsort().
  • SORT_FLAG_CASE - Peut être combiné (par OR binaire) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes de caractères sans distinction de cas.
array2 Optionnel. Définir un tableau.
array3 Optionnel. Définir un tableau.

Description

La fonction array_multisort() trie plusieurs tableaux ou tableaux multidimensionnels.

Les tableaux dans les paramètres sont considérés comme des colonnes d'une table et sont triés par rang - cela ressemble à la fonction ORDER BY de SQL. Le premier tableau est le tableau principal à trier. Si les rangs (valeurs) des tableaux sont comparés de manière égale, ils sont ensuite triés en fonction de la taille des valeurs correspondantes dans le prochain tableau d'entrée, et ainsi de suite.

Le premier paramètre est un tableau, chaque paramètre suivant peut être un tableau ou l'un des suivants, des indicateurs d'ordre de tri (les indicateurs de tri sont utilisés pour modifier l'ordre par défaut) :

  • SORT_ASC - Par défaut, trier par ordre croissant. (A-Z)
  • SORT_DESC - Trier par ordre décroissant. (Z-A)

Il est ensuite possible de spécifier le type de tri :

  • SORT_REGULAR - Par défaut. Trier chaque élément dans l'ordre habituel.
  • SORT_NUMERIC - Trier chaque élément dans l'ordre numérique.
  • SORT_STRING - Trier chaque élément par ordre alphabétique.

Détails techniques

Valeur de retour : Retourne TRUE si succès, FALSE si échec.
Version PHP : 4+
Journal des mises à jour :

Les types de tri SORT_NATURAL et SORT_FLAG_CASE ont été ajoutés dans PHP 5.4.

Le type de tri SORT_LOCALE_STRING a été ajouté dans PHP 5.3.

Plus d'exemples

Exemple 1

Retourne un tableau trié en ordre croissant :

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>

Exemple de exécution

Exemple 2

Comment trier lorsque deux valeurs sont égales :

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>

Exemple de exécution

Exemple 3

Utiliser les paramètres de tri :

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);
?>

Exemple de exécution

Exemple 4

Fusionner deux tableaux et les trier par ordre décroissant des nombres :

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);
?>

Exemple de exécution