array_map Applique une fonction sur les éléments d'un tableau &reftitle.description; arrayarray_map callablenullcallback arrayarray arrayarrays array_map retourne un &array; contenant les résultats de l'application de la fonction de rappel callback à la valeur correspondante de array (et arrays si plus de tableaux sont fournis) 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és à array_map. Les tableaux d'entrées en surplus sont ignorés. Une ArgumentCountError est lancée si un nombre insuffisant d'arguments est fourni. &reftitle.parameters; callback La fonction de rappel de type callable à exécuter pour chaque élément de chaque tableau. &null; peut être passé comme valeur à callback pour exécuter une opération zip sur plusieurs tableaux et renvoyer un tableau dont les éléments sont chacun un tableau contenant les éléments des tableaux d'entrée ayant le même indice (voir l'exemple ci-dessous). Si seulement array est fourni, array_map retournera le tableau d'entrée. array Un tableau à exécuter via la fonction de rappel callback. arrays Liste variable d'arguments tableaux supplémentaires à exécuter via la fonction de rappel callback. &reftitle.returnvalues; Retourne un &array; contenant les résultats de l'application de la fonction de rappel callback à la valeur correspondant de array (et arrays si plus de tableaux sont fourni) utilisé en tant qu'arguments pour la fonction de rappel. Le &array; 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 &array; retourné aura des clés séquentielles sous la forme d'&integer;. &reftitle.changelog; &Version; &Description; &array.changelog.by-ref; &reftitle.examples; Exemple avec <function>array_map</function> ]]> Le contenu de la variable $b sera : 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) ]]> <function>array_map</function> utilisant une fonction quelconque $value * 2, range(1, 5))); ?> ]]> &example.outputs; 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) ]]> <function>array_map</function> : utilisation de plusieurs tableaux $m]; } $a = [1, 2, 3, 4, 5]; $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); ?> ]]> &example.outputs; 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. Exécution d'une opération zip de tableaux ]]> &example.outputs; 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 ) ) ]]> &null; <parameter>callback</parameter> avec seulement <parameter>array</parameter> ]]> &example.outputs; int(1) [1]=> int(2) [2]=> int(3) } ]]> <function>array_map</function> - avec des clés sous la forme de &string; '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)); ?> ]]> &example.outputs; 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" } } ]]> <function>array_map</function> - tableaux associatifs Même si array_map ne supporte pas directement l'utilisation des clés d'un tableau comme entrée, ceci peut être simulé en utilisant array_keys. 'First release', 'v2' => 'Second release', 'v3' => 'Third release', ]; // Note: Antérieur à 7.4.0, il faut utiliser la syntaxe plus longue pour les // fonctions anonymes à la place. $callback = fn(string $k, string $v): string => "$k was the $v"; $result = array_map($callback, array_keys($arr), array_values($arr)); var_dump($result); ?> ]]> &example.outputs; string(24) "v1 was the First release" [1]=> string(25) "v2 was the Second release" [2]=> string(24) "v3 was the Third release" } ]]> &reftitle.seealso; array_filter array_reduce array_walk