array_keys
array_merge_recursive
Fonctions sur les tableaux
PHP Manual

# array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map — Applique une fonction sur les éléments d'un tableau

### Description

array array_map ( callback `$callback` , array `$arr1` [, array `$...` ] )

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().

### Liste de paramètres

`callback`

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

`arr1`

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

`array`

  Liste des tableaux à exécuter via la fonction de `callback`.

### Valeurs de retour

Retourne un tableau contenant tous les éléments du tableau `arr1` 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)));
?>`

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => 2
        [1] => 4
        [2] => 6
        [3] => 8
        [4] => 10
    )

### Exemples

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.

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"
      }
    }

### 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 sur chacun des éléments d'un tableau
- create_function() - Crée une fonction anonyme

Informations sur le type callback

array_keys
array_merge_recursive
Fonctions sur les tableaux
PHP Manual