(PHP 4 >= 4.0.6, PHP 5)
array_map — Applique une fonction sur les éléments d'un tableau
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().
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
.
Retourne un tableau contenant tous les éléments du tableau
array1
après avoir appliqué la fonction de
callback
sur chacun d'eux.
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 ) )
Si le tableau en argument contient des clés sous la forme de chaîne de caractères, alors, le tableau retourné contiendra également des clés sous la forme de chaîne de caractères, si et seulement si un seul tableau est passé. Si plusieurs tableaux sont passés comme argument, le tableau retourné aura toujours 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" } }