Apprendre à trier des tableaux en PHP avec la fonction asort()
Apprenez à utiliser la fonction asort() de PHP pour trier un tableau par valeur en ordre croissant tout en préservant les associations clé-valeur.
En tant que développeur web, vous pouvez vous retrouver dans des situations où vous devez manipuler des tableaux dans votre code PHP. L'une de ces opérations consiste à trier le tableau. La fonction intégrée asort() de PHP peut être utilisée pour trier un tableau par ses valeurs en ordre croissant. Dans cet article, nous allons explorer l'utilisation de la fonction asort(), sa syntaxe et des exemples d'utilisation dans votre code.
Syntaxe de asort()
La fonction asort() trie un tableau par ses valeurs en ordre croissant, tout en maintenant les associations clé-valeur. La syntaxe de la fonction est la suivante :
Syntaxe de la fonction asort
asort($array, $sorting_type);Le premier argument $array est le tableau à trier. Le second argument $sorting_type est facultatif et spécifie le type de tri. Les valeurs possibles incluent :
SORT_REGULAR- compare les éléments normalementSORT_NUMERIC- compare les éléments numériquementSORT_STRING- compare les éléments comme des stringSORT_LOCALE_STRING- compare les éléments comme des string selon la locale actuelle
Si le paramètre $sorting_type n'est pas fourni, SORT_REGULAR est utilisé par défaut. Notez que asort() modifie le tableau original sur place et retourne true en cas de succès ou false en cas d'échec — elle ne retourne pas un nouveau tableau trié, donc n'écrivez pas $sorted = asort($array) en vous attendant à obtenir les données triées dans $sorted.
Quand utiliser asort()
Ce qui distingue asort() de la simple sort(), c'est qu'elle conserve chaque valeur associée à sa clé d'origine. Utilisez asort() lorsque les clés ont une signification que vous ne pouvez pas vous permettre de perdre — par exemple, un tableau associatif qui mappe des noms à des scores, des identifiants à des prix, ou des noms d'utilisateur à des horodatages de dernière connexion. Si vous triez ce type de données avec sort(), PHP jette les clés et réindexe le tableau 0, 1, 2, …, rompant ainsi l'association.
Optez pour sort() uniquement lorsque le tableau est une simple liste et que les clés ne sont que des positions qui n'ont pas d'importance.
Exemples de asort()
Voici quelques exemples illustrant l'utilisation de la fonction asort() en PHP :
- Trier un tableau de string avec
asort():
Exemples de asort()
- Trier un tableau d'entiers avec
asort():
Trier un tableau d'entiers avec asort()
- Trier un tableau associatif avec
asort():
PHP — Trier un tableau associatif avec asort()
Pièges courants
- Utilisez
SORT_NUMERICpour les string numériques. Avec leSORT_REGULARpar défaut, des valeurs telles que"10"et"9"peuvent être comparées comme des string, plaçant"10"avant"9". PassezSORT_NUMERIClorsque vos valeurs sont des nombres (même stockées en tant que string) pour garantir un ordre numérique. - Le tri n'est pas stable avant PHP 8.0. Dans PHP 8.0 et les versions ultérieures, les éléments égaux conservent leur ordre relatif d'origine ; dans les versions antérieures, leur ordre était indéfini.
- Elle retourne un boolean, pas le tableau. Puisque le tri s'effectue sur place, traitez la variable d'origine comme le résultat.
Fonctions de tri associées
PHP propose une famille de fonctions de tri de tableaux, chacune préservant (ou supprimant) les clés différemment et triant par valeur ou par clé :
sort()— trie par valeur croissante, réindexe les clés.rsort()— trie par valeur décroissante, réindexe les clés.arsort()— commeasort()mais en ordre décroissant, en conservant les associations de clés.ksort()/krsort()— trie par clé croissante / décroissante.usort()/uasort()— trie avec un rappel de comparaison personnalisé.
Consultez l'aperçu Trier des tableaux pour une comparaison côte à côte.
Conclusion
La fonction asort() est un outil utile pour trier des tableaux en PHP par leurs valeurs en ordre croissant, tout en maintenant les associations clé-valeur. Elle excelle lorsque vos clés ont une signification — trier un tableau associatif de noms en scores, d'identifiants en prix, et ainsi de suite — là où la simple sort() supprimerait ces clés. En comprenant sa syntaxe, ses types de tri et les fonctions de tri associées, vous pouvez choisir le bon outil pour chaque tâche de classement et écrire du code PHP plus propre.