Les fonctions de tri sont puissantes et adaptées à différentes sortes de tri, ascendant ou descendant, sur les clés ou sur les valeurs, par ordre naturel.

PHP permet de trier un tableau de trois façons :

- par les clés,
- par les valeurs sans changer les clés,
- par valeurs en changeant les clés.

L'ordre de tri peut être ascendant, descendant, ou déterminé par une fonction définie par le développeur.

| Ascendant | Descendant | Fonction
Trier par valeur avec changement d'indice | sort() | rsort() | usort()
Trier par valeur | asort() | arsort() | uasort()
Trier par clé | ksort() | krsort() | uksort()

Les fonctions de tri qui changent la valeur des clés (sort() , rsort() et usort() ) sont généralement utilisées avec des tableaux à indices numériques. Leur utilisation avec un tableau associatif est possible, mais comme les associations entre clés et valeurs sont perdues, on va à l'encontre même de l'utilité de ce type de tableau.

Les fonctions de tri agissent directement sur le tableau qui leur est passé en paramètre (le tableau est tranmis par référence), en modifiant l'ordre de ses éléments. Le tableau intial n'est ni sauvegardé ni récupérable.

Les tris d'éléments alphanumériques se font suivant l'ordre ASCII : 'Noir' se trouve avant 'blanc' car la le code ASCII de la lettre 'N' (78) est inférieur au code ASCII de la lettre 'b' (98). Dans le même ordre d'idée on trouvera la chaîne 'numéro 10' avant la chaîne 'numéro 2'.

Exemple : tri de tableaux à indices numériques
<?php require('bib_fonctions.php'); htmlDebut('Tri tableaux à indices numériques'); htmlInfo('Tableau avec uniquement des valeurs aplha'); $t = array('Pierre', 'Paul', 'Jacques', 'Jean', 'Louis'); infoTableau($t); htmlInfo('Tri ascendant'); sort($t); infoTableau($t); htmlInfo('Tri descendant'); rsort($t); infoTableau($t); htmlInfo('Tableau avec des valeurs alpha et numériques'); $t = array('Pierre', 50, 'Paul', 10, 'Jacques', 5); infoTableau($t); htmlInfo('Tri ascendant'); sort($t); infoTableau($t); htmlInfo('Tri descendant'); rsort($t); infoTableau($t); htmlFin(); ?>
Exemple : tri de tableaux associatifs par valeur
<?php require('bib_fonctions.php'); htmlDebut('Tri associatif par valeur'); htmlInfo('Tableau initial'); $t['B41d'] = 'Pierre'; $t['C24a'] = 'Paul'; $t['D12z'] = 'Jacques'; infoTableau($t); htmlInfo('Tri ascendant'); asort($t); infoTableau($t); htmlInfo('Tri descendant'); arsort($t); infoTableau($t); htmlFin(); ?>
Exemple : tri de tableaux associatifs par clé
<?php require('bib_fonctions.php'); htmlDebut('Tri associatif par clé'); htmlInfo('Tableau initial'); $t['B41d'] = 'Pierre'; $t['C24a'] = 'Paul'; $t['D12z'] = 'Jacques'; infoTableau($t); htmlInfo('Tri ascendant'); ksort($t); infoTableau($t); htmlInfo('Tri descendant'); krsort($t); infoTableau($t); htmlFin(); ?>