array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_mapApplique une fonction sur les éléments d'un tableau

Description

array_map ( callable $callback , array $array1 [, array $... ] ) : array

array_map() retourne un tableau contenant les résultats de l'application de la fonction de rappel callback à l'index correspondant de array1 (et ... si plus de tableaux sont fourni) utilisé en tant qu'arguments pour la fonction de rappel. Le nombre de paramètres que la fonction de rappel callback accepte devrait correspondre au nombre de tableaux passé à array_map().

Liste de paramètres

callback

La fonction de rappel à exécuter pour chaque élément de chaque tableau.

NULL peut être passé comme valeur à callback pour executer une opération zip sur plusieurs tableaux. Si seulement array1 est fourni, array_map() retournera le tableau d'entré.

array1

Un tableau à exécuter via la fonction de rappel callback.

...

Liste variable d'arguments tableaux supplémentaires à exécuter via la fonction de rappel callback.

Valeurs de retour

Retourne un tableau contenant les résultats de l'application de la fonction de rappel callback à l'index correspondant de array1 (et ... si plus de tableaux sont fourni) utilisé en tant qu'arguments pour la fonction de rappel.

Exemples

Exemple #1 Exemple avec array_map()

<?php
function cube($n)
{
    return (
$n $n $n);
}

$a = [12345];
$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($funcrange(15)));

?>
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 [
$n => $m];
}

$a = [12345];
$b = ['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 Exécution d'une opération zip de tableaux

<?php
$a 
= [12345];
$b = ['one''two''three''four''five'];
$c = ['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 NULL callback avec seulement array1

<?php
$array 
= [123];
var_dump(array_map(null$array));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Exemple #6 array_map() - avec des clés sous la forme de chaîne de caractères

<?php
$arr 
= ['stringkey' => 'value'];
function 
cb1($a) {
    return [
$a];
}
function 
cb2($a$b) {
    return [
$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 de rappel
  • 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