Comprendre la fonction PHP array_reverse
En PHP, la fonction array_reverse() permet d'inverser l'ordre des éléments d'un array. Découvrez sa syntaxe, les options de clés et les pièges courants.
La fonction PHP array_reverse() retourne un nouvel array dont les éléments sont dans l'ordre inverse de celui fourni. Il s'agit d'une fonction native (aucune extension requise) qui fonctionne aussi bien avec les arrays indexés qu'avec les arrays associatifs. C'est l'outil de référence lorsque vous avez besoin d'une vue « du dernier au premier » de vos données — par exemple, afficher les commentaires les plus récents en premier, parcourir une liste à rebours ou annuler un tri.
Cette page couvre la syntaxe, la gestion des clés, le flag $preserve_keys et les erreurs courantes à éviter.
Syntaxe
array_reverse(array $array, bool $preserve_keys = false): array| Paramètre | Requis | Description |
|---|---|---|
$array | Oui | L'array à inverser. |
$preserve_keys | Non | Si true, les clés numériques restent attachées à leurs valeurs au lieu d'être renumérotées. Les clés string sont toujours conservées, quelle que soit la valeur de ce flag. La valeur par défaut est false. |
La fonction retourne un nouvel array ; l'original n'est jamais modifié.
Comment fonctionne la fonction PHP array_reverse ?
array_reverse() parcourt l'array d'entrée du dernier élément au premier et construit un nouvel array dans cet ordre. Par défaut, les clés entières sont renumérotées à partir de 0, tandis que les clés string sont conservées telles quelles. Passez true comme second argument lorsque vous souhaitez que les clés numériques d'origine restent liées à leurs valeurs.
Voici le cas le plus simple — inverser un array indexé :
Exemple PHP d'utilisation de la fonction array_reverse
Résultat :
Array
(
[0] => cherry
[1] => banana
[2] => apple
)Comme nous pouvons le voir, l'ordre des éléments dans $reversed_array est l'inverse de l'ordre des éléments dans $original_array.
Utiliser la fonction PHP array_reverse avec des arrays associatifs
Comme mentionné précédemment, la fonction array_reverse() peut également être utilisée avec des arrays associatifs. Dans ce cas, l'ordre des éléments est inversé, mais les clés string restent inchangées par défaut.
Voici un exemple d'utilisation de la fonction array_reverse() avec un array associatif :
Exemple PHP d'utilisation de la fonction array_reverse() avec un array associatif
Résultat :
Array
(
[c] => cherry
[b] => banana
[a] => apple
)Comme nous pouvons le voir, les clés des éléments dans $reversed_array correspondent toujours aux clés d'origine, mais l'ordre des éléments est inversé. Les clés string sont toujours conservées, donc le flag $preserve_keys n'a aucun effet ici.
Conserver les clés numériques
Pour les arrays indexés (à clés numériques), array_reverse() renuméroté les clés à partir de 0 par défaut. C'est généralement le comportement souhaité, mais parfois l'index d'origine a une signification — un numéro de ligne, une position, un identifiant. Passez true comme second argument pour que ces clés restent attachées à leurs valeurs :
Exemple PHP de conservation des clés numériques avec array_reverse()
<?php
$data = array(10 => "ten", 20 => "twenty", 30 => "thirty");
// Default: numeric keys are renumbered from 0
print_r(array_reverse($data));
// preserve_keys = true: original numeric keys are kept
print_r(array_reverse($data, true));
?>Résultat :
Array
(
[0] => thirty
[1] => twenty
[2] => ten
)
Array
(
[30] => thirty
[20] => twenty
[10] => ten
)Dans le premier array, les valeurs sont inversées mais les clés sont réinitialisées ; dans le second, les clés 30, 20 et 10 restent associées à leurs valeurs.
Erreurs courantes à éviter
- La fonction ne modifie pas l'array d'origine.
array_reverse($arr)retourne un nouvel array — elle ne modifie pas$arren place. Capturez toujours la valeur de retour :$arr = array_reverse($arr);. - Ce n'est pas un tri. L'inversion ne fait que retourner l'ordre actuel. Pour obtenir un ordre décroissant, triez d'abord (par exemple avec
rsort()ouarsort()) plutôt que d'inverser. - Les clés string ignorent
$preserve_keys. Ce flag n'affecte que les clés entières ; les clés string sont toujours conservées. - Inverser une string.
array_reverse()ne fonctionne que sur les arrays. Pour inverser une string, utilisezstrrev()à la place.
Fonctions associées
array_slice()— extraire une portion d'un array.array_merge()— combiner des arrays.rsort()— trier un array en ordre décroissant.krsort()— trier un array associatif par clé en ordre inverse.strrev()— inverser une string.
Conclusion
En conclusion, la fonction array_reverse() est une fonction puissante et polyvalente qui vous permet d'inverser facilement l'ordre des éléments d'un array. Que vous travailliez avec des arrays indexés ou des arrays associatifs, la fonction array_reverse() vous aide à manipuler vos arrays selon vos besoins. Grâce à sa syntaxe simple et à son comportement intuitif, la fonction array_reverse() est un outil indispensable pour tout développeur PHP travaillant avec des arrays.