W3docs

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 normalement
  • SORT_NUMERIC - compare les éléments numériquement
  • SORT_STRING - compare les éléments comme des string
  • SORT_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 :

  1. Trier un tableau de string avec asort() :

Exemples de asort()

php— editable, runs on the server
  1. Trier un tableau d'entiers avec asort() :

Trier un tableau d'entiers avec asort()

php— editable, runs on the server
  1. Trier un tableau associatif avec asort() :

PHP — Trier un tableau associatif avec asort()

php— editable, runs on the server

Pièges courants

  • Utilisez SORT_NUMERIC pour les string numériques. Avec le SORT_REGULAR par défaut, des valeurs telles que "10" et "9" peuvent être comparées comme des string, plaçant "10" avant "9". Passez SORT_NUMERIC lorsque 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() — comme asort() 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.

Pratique

Pratique
Que fait la fonction asort() en PHP ?
Que fait la fonction asort() en PHP ?
Was this page helpful?