W3docs

La fonction array_map en PHP : Guide complet

Découvrez comment utiliser array_map en PHP pour transformer des tableaux grâce à une fonction de rappel appliquée à chaque élément.

La fonction array_map en PHP est un outil essentiel pour transformer des tableaux de données. Elle permet aux développeurs d'appliquer une fonction de rappel à chaque élément d'un tableau, puis de retourner un nouveau tableau contenant les résultats. Il s'agit d'une technique polyvalente et puissante pour traiter des données en PHP, applicable à un large éventail de cas d'usage.

Comment fonctionne array_map ?

La syntaxe de base de la fonction array_map est la suivante :

Syntaxe de la fonction array_map en PHP

array_map(callback, array1, array2, ...);

Ici, l'argument callback est la fonction qui sera appliquée à chaque élément des tableaux. Les autres arguments sont les tableaux à traiter. Par exemple, considérez le code suivant :

Exemple d'utilisation de la fonction array_map en PHP

php— editable, runs on the server

Ce code définit une fonction simple, square, qui prend un nombre et retourne son carré. La fonction array_map est ensuite utilisée pour appliquer cette fonction à chaque élément du tableau $numbers. Le résultat est un nouveau tableau, $squared, contenant les carrés des nombres d'origine.

Remarque sur la longueur des tableaux : Lorsque plusieurs tableaux sont passés à array_map, le traitement se poursuit jusqu'à l'épuisement du tableau le plus long. Si les tableaux ont des longueurs inégales, les éléments manquants dans les tableaux plus courts sont automatiquement traités comme null.

Remarque sur la syntaxe moderne : En PHP 7.4+, vous pouvez utiliser des fonctions fléchées pour des rappels concis. Par exemple : array_map(fn($n) => $n * $n, $numbers);

Exemples concrets d'utilisation d'array_map

La fonction array_map est extrêmement polyvalente et peut être utilisée dans de nombreux contextes différents. Voici quelques exemples pour illustrer sa puissance :

Transformer des tableaux de chaînes de caractères

PHP : transformer des tableaux de chaînes de caractères avec la fonction array_map

php— editable, runs on the server

Dans cet exemple, la fonction array_map est utilisée pour convertir un tableau de chaînes en majuscules. La fonction upper prend une chaîne et retourne son équivalent en majuscules. Lorsque cette fonction est appliquée à chaque élément du tableau $words, le résultat est un nouveau tableau contenant les versions en majuscules des mots d'origine.

Combiner des tableaux avec array_map

PHP : combiner des tableaux avec array_map

php— editable, runs on the server

Dans cet exemple, deux tableaux, $a et $b, sont combinés en un troisième tableau, $c. La fonction sum prend deux arguments et retourne leur somme. La fonction array_map est utilisée pour appliquer cette fonction à chaque paire d'éléments correspondants dans $a et $b. Le résultat est un nouveau tableau, $c, contenant les sommes des paires d'origine.

Fusionner des tableaux avec un rappel null

Si vous passez null comme rappel, array_map fusionne les tableaux — chaque élément du résultat est un tableau des valeurs correspondantes de chaque tableau d'entrée. C'est pratique pour associer des données liées sans avoir à écrire de fonction.

PHP : fusionner des tableaux avec array_map et un rappel null

<?php

$ids   = [1, 2, 3];
$names = ['Alice', 'Bob', 'Carol'];

$pairs = array_map(null, $ids, $names);

print_r($pairs);

?>

Le résultat est [[1, 'Alice'], [2, 'Bob'], [3, 'Carol']] — un tableau interne par ligne.

Pièges et points de vigilance

  • Les clés ne sont préservées qu'avec un seul tableau. Lorsque vous passez un seul tableau, array_map conserve les clés d'origine. Avec deux tableaux ou plus, le résultat est ré-indexé avec des clés entières séquentielles, donc toute clé string est perdue.
  • array_map ne modifie pas le tableau d'origine. Elle retourne toujours un nouveau tableau. Si vous souhaitez transformer un tableau sur place, utilisez plutôt array_walk.
  • Le rappel doit être appelable. Passez un nom de fonction sous forme de string ('square'), une fonction anonyme, une fonction fléchée, ou un tableau [$object, 'method']. Consultez les fonctions de rappel PHP pour la liste complète des formes acceptées.

Quand utiliser array_map plutôt que d'autres fonctions de tableau

  • Utilisez array_map pour transformer chaque élément en une nouvelle valeur (un élément en entrée → un élément en sortie).
  • Utilisez array_filter lorsque vous souhaitez ne conserver que les éléments qui passent un test.
  • Utilisez array_reduce lorsque vous souhaitez réduire le tableau à une valeur unique, comme une somme ou une chaîne concaténée.

Conclusion

La fonction array_map en PHP est un outil incroyablement puissant pour transformer des tableaux de données. Que vous convertissiez des chaînes en majuscules, combiniez des tableaux ou effectuiez tout autre type de calcul, array_map est l'outil idéal pour le travail. Grâce à sa syntaxe flexible et à sa capacité à travailler avec plusieurs tableaux simultanément, c'est une fonction incontournable pour tout développeur PHP.

Entraînement

Pratique
Qu'est-ce qui est vrai concernant la fonction array_map() en PHP ?
Qu'est-ce qui est vrai concernant la fonction array_map() en PHP ?
Was this page helpful?