array_map
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_map — Applique une fonction sur les éléments d'un tableau
Description
array_map() retourne un tableau
contenant tous les éléments du tableau array1
,
après leur avoir appliqué la fonction callback
.
Le nombre de paramètres de la fonction callback
doit être égal au nombre de tableaux passés dans la fonction
array_map().
Liste de paramètres
-
callback
-
La fonction de rappel à exécuter pour chaque élément de chaque tableau.
-
array1
-
Un tableau à exécuter via la fonction de
callback
. -
...
-
Liste des tableaux à exécuter via la fonction de
callback
.
Valeurs de retour
Retourne un tableau contenant tous les éléments du tableau
array1
après avoir appliqué la fonction de
callback
sur chacun d'eux.
Exemples
Exemple #1 Exemple avec array_map()
<?php
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
Le contenu de la variable $b sera :
Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
Exemple #2 array_map() : utilisation d'une fonction quelconque (depuis PHP 5.3.0)
<?php
$func = function($value) {
return $value * 2;
};
print_r(array_map($func, range(1, 5)));
?>
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Exemple #3 array_map() : utilisation de plusieurs tableaux
<?php
function show_Spanish($n, $m)
{
return("Le nombre $n se dit $m en Espagnol");
}
function map_Spanish($n, $m)
{
return(array($n => $m));
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);
$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>
L'exemple ci-dessus va afficher :
// Contenu de $c Array ( [0] => Le nombre 1 se dit uno en Espagnol [1] => Le nombre 2 se dit dos en Espagnol [2] => Le nombre 3 se dit tres en Espagnol [3] => Le nombre 4 se dit cuatro en Espagnol [4] => Le nombre 5 se dit cinco en Espagnol ) // Contenu de $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) )
Généralement, lors de l'utilisation de plusieurs tableaux, ils doivent être d'égale longueur, car la fonction de rappel est appliquée de manière similaire à tous les tableaux. Si les tableaux sont de tailles inégales, les plus petits seront complétés avec des éléments vides pour atteindre la taille du plus grand.
Une utilisation intéressante de cette fonction est la construction
de tableaux de tableaux, facilement réalisée en passant la valeur
NULL
comme nom de fonction de rappel.
Exemple #4 Création d'un tableau de tableaux
<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
L'exemple ci-dessus va afficher :
Array ( [0] => Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ) )
Le tableau retourné conservera les clés du tableau passé en argument, si et seulement si, un seul tableau est passé. Si plusieurs tableaux sont passés comme argument, le tableau retourné aura des clés sous la forme d'entier.
Exemple #5 array_map() - avec des clés sous la forme de chaîne de caractères
<?php
$arr = array("stringkey" => "value");
function cb1($a) {
return array ($a);
}
function cb2($a, $b) {
return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>
L'exemple ci-dessus va afficher :
array(1) { ["stringkey"]=> array(1) { [0]=> string(5) "value" } } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } } array(1) { ["stringkey"]=> string(5) "value" } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } }
Voir aussi
- array_filter() - Filtre les éléments d'un tableau grâce à une fonction utilisateur
- array_reduce() - Réduit itérativement un tableau
- array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
- Informations sur le type callback
Version en cache
22/11/2024 22:15:53 Cette version de la page est en cache (à la date du 22/11/2024 22:15:53) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-array-map.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.