(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 arr1 , 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() , dans les arguments supplémentaires ... .
Exemple 399. 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
);
?>
L'exemple ci-dessus va afficher :
Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
Exemple 400. array_map() : utilisation de plusieurs tableaux
<?php
function
parle_espagnol
(
$n
,
$m
) {
return
"Le nombre $n se dit $m en espagnol"
;
}
function
map_espagnol
(
$n
,
$m
) {
return array(
$n
=>
$m
);
}
$a
= array(
1
,
2
,
3
,
4
,
5
);
$b
= array(
"uno"
,
"dos"
,
"tres"
,
"cuatro"
,
"cinco"
);
$c
=
array_map
(
"parle_espagnol"
,
$a
,
$b
);
print_r
(
$c
);
?>
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.
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 401. 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(
"un"
,
"deux"
,
"trois"
,
"quatre"
,
"cinq"
);
$d
=
array_map
(
null
,
$a
,
$b
,
$c
,
$d
);
print_r
(
$d
);
?>
L'exemple ci-dessus va afficher :
Array ( [0] => Array ( [0] => 1 [1] => one [2] => uno [3] => un ) [1] => Array ( [0] => 2 [1] => two [2] => dos [3] => deux ) [2] => Array ( [0] => 3 [1] => three [2] => tres [3] => trois ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro [3] => quatre ) [4] => Array ( [0] => 5 [1] => five [2] => cinco [3] => cinq ) )
Voir aussi array_filter() , array_reduce() , array_walk() , create_function() et information à propos de callback type.