Dans le chapitre précédent, vous avez appris l'essentiel des tableaux PHP, c'est-à-dire ce que sont les tableaux, comment les créer, comment afficher leur structure, comment accéder à leurs éléments, etc. Vous pouvez faire encore plus de choses avec les tableaux comme trier les éléments dans n'importe quel commande que vous aimez.
PHP est livré avec un certain nombre de fonctions intégrées conçues spécifiquement pour trier les éléments du tableau de différentes manières, par exemple par ordre alphabétique ou numérique dans l'ordre croissant ou décroissant. Ici, nous allons explorer certaines de ces fonctions les plus couramment utilisées pour trier les tableaux.
La fonction sort() permet de trier les éléments du tableau indexé par ordre croissant (alphabétiquement pour les lettres et numériquement pour les nombres).
<?php
/* Définir un tableau */
$couleurs = array("Red", "Green", "Blue", "Yellow");
/* Trier et afficher le tableau */
sort($couleurs);
print_r($couleurs);
?>
Cette instruction print_r() donne la sortie suivante :
Tableau ( [0] => Bleu [1] => Vert [2] => Rouge [3] => Jaune )
De même, vous pouvez trier les éléments numériques du tableau par ordre croissant.
<?php
/* Définir un tableau */
$numbers = array(1, 2, 2.5, 4, 7, 10);
/* Trier et afficher le tableau */
sort($numbers);
print_r($numbers);
?>
Cette instruction print_r() donne la sortie suivante :
Tableau ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )
La fonction rsort() permet de trier les éléments du tableau indexé par ordre décroissant (alphabétique pour les lettres et numérique pour les nombres).
<?php
/* Définir un tableau */
$couleurs = array("Red", "Green", "Blue", "Yellow");
/* Trier et afficher le tableau */
rsort($couleurs);
print_r($couleurs);
?>
Cette instruction print_r() donne la sortie suivante :
Array ( [0] => Jaune [1] => Rouge [2] => Vert [3] => Bleu )
De même, vous pouvez trier les éléments numériques du tableau par ordre décroissant.
<?php
/* Définir un tableau */
$numbers = array(1, 2, 2.5, 4, 7, 10);
/* Trier et afficher le tableau */
rsort($numbers);
print_r($numbers);
?>
Cette instruction print_r() donne la sortie suivante :
Tableau ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )
La fonction asort() trie les éléments d'un tableau associatif dans l'ordre croissant selon la valeur. Cela fonctionne exactement comme sort(), mais il préserve l'association entre les clés et ses valeurs lors du tri.
<?php
/* Définir un tableau */
$age = array("Patrick"=>20, "Henock"=>14, "Jean"=>45, "Carlos"=>35);
/* trier par la valeur et afficher */
asort($age);
print_r($age);
?>
Cette instruction print_r() donne la sortie suivante :
Array ( [Henock] => 14 [Patrick] => 20 [Carlos] => 35 [Jean] => 45 )
La fonction arsort() trie les éléments d'un tableau associatif par ordre décroissant en fonction de la valeur. Cela fonctionne exactement comme rsort(), mais il préserve l'association entre les clés et ses valeurs lors du tri.
<?php
/* Définir un tableau */
$age = array("Patrick"=>20, "Henock"=>14, "Jean"=>45, "Carlos"=>35);
/* trier par la valeur et afficher */
arsort($age);
print_r($age);
?>
Cette instruction print_r() donne la sortie suivante :
Array ( [Jean] => 45 [Carlos] => 35 [Patrick] => 20 [Henock] => 14 )
La fonction ksort() trie les éléments d'un tableau associatif dans l'ordre croissant de leurs clés. Il préserve l'association entre les clés et ses valeurs lors du tri, comme la fonction asort().
<?php
/* Définir un tableau */
$age = array("Patrick"=>20, "Henock"=>14, "Jean"=>45, "Carlos"=>35);
/* trier par la clé et afficher */
ksort($age);
print_r($age);
?>
Cette instruction print_r() donne la sortie suivante :
Array ( [Carlos] => 35 [Henock] => 14 [Jean] => 45 [Patrick] => 20 )
Tri des tableaux associatifs par ordre décroissant par clé
La fonction krsort() trie les éléments d'un tableau associatif dans l'ordre décroissant de leurs clés. Il préserve l'association entre les clés et ses valeurs lors du tri, comme la fonction arsort().
<?php
/* Définir un tableau */
$age = array("Patrick"=>20, "Henock"=>14, "Jean"=>45, "Carlos"=>35);
/* trier par la clé et afficher */
krsort($age);
print_r($age);
?>
Cette instruction print_r() donne la sortie suivante :
Array ( [Patrick] => 20 [Jean] => 45 [Henock] => 14 [Carlos] => 35 )