array_map Aplica uma função em todos os elementos dos arrays dados &reftitle.description; arrayarray_map callablenullcallback arrayarray arrayarrays array_map retorna um &array; contendo os resultados da aplicação do callback ao valor correspondente do array (e arrays se mais arrays forem fornecidos) usados como argumentos para a função de callback. O número de parâmetros que a função callback aceita deve coincidir com o número de arrays passados para array_map. Arrays de entrada excedentes são ignorados. Um ArgumentCountError é lançado se um número insuficiente de argumentos é fornecido. &reftitle.parameters; callback Um callable para executar para cada elemento em cada array. &null; pode ser passado como um valor para callback para realizar uma operação zip em múltiplos arrays e retornar um array onde cada elemento é um array contendo os elementos dos arrays de entrada na mesma posição do ponteiro interno do array (veja o exemplo abaixo). Se apenas array for fornecido, array_map retornará o array de entrada. array Um array para percorrer chamando função callback. arrays Lista variável suplementar de argumentos array para passar pela função callback. &reftitle.returnvalues; Retorna um array contendo os resultados da aplicação da função callback ao valor correspondente do array (e arrays se mais arrays forem fornecidos) usados como argumentos para o callback. O array retornado irá preservar as chaves do argumento array se e somente se exatamente um array for passado. Se mais de um array for passado, o array retornado terá chaves inteiras sequenciais. &reftitle.changelog; &Version; &Description; &array.changelog.by-ref; &reftitle.examples; Exemplo da função <function>array_map</function> ]]> Faz com que $b tenha: 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) ]]> <function>array_map</function> utilizando uma função lambda $value * 2, range(1, 5))); ?> ]]> &example.outputs; 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) ]]> <function>array_map</function> - usando mais de um array $m]; } $a = [1, 2, 3, 4, 5]; $b = ['uno', 'dos', 'tres', 'cuatro', 'cinco']; $c = array_map('mostrar_Espanhol', $a, $b); print_r($c); $d = array_map('map_Espanhol', $a , $b); print_r($d); ?> ]]> &example.outputs; O número 1 é chamado de uno em espanhol [1] => O número 2 é chamado de dos em espanhol [2] => O número 3 é chamado de tres em espanhol [3] => O número 4 é chamado de cuatro em espanhol [4] => O número 5 é chamado de cinco em espanhol ) // Saída de $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) ) ]]> Normalmente quando se usa dois ou mais arrays, eles devem ter o mesmo tamanho porque a função de retorno é aplicada paralelamente nos elementos correpondentes. Se os arrays tem tamanhos diferentes, o array menor será estendido com elementos vazios. Uma forma interessante de se usar esta função é na construção de um array de arrays, o que pode ser facilmente feito usando &null; como o nome da função de retorno. Realizando uma operação zip de arrays ]]> &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 ) ) ]]> <parameter>callback</parameter> &null; apenas com <parameter>array</parameter> ]]> &example.outputs; int(1) [1]=> int(2) [2]=> int(3) } ]]> <function>array_map</function> - com chaves 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> - arrays associativos Enquanto array_map não suporta diretamente o uso da chave do array como entrada, isso pode ser simulado usando array_keys. 'Primeiro lançamento', 'v2' => 'Segundo lançamento', 'v3' => 'Terceiro lançamento', ]; // Nota: Antes da 7.4.0, use a sintaxe mais longa para funções anônimas. $callback = fn(string $k, string $v): string => "$k foi o $v"; $result = array_map($callback, array_keys($arr), array_values($arr)); var_dump($result); ?> ]]> &example.outputs; string(24) "v1 foi o Primeiro lançamento" [1]=> string(25) "v2 foi o Segundo lançamento" [2]=> string(24) "v3 foi o Terceiro lançamento" } ]]> &reftitle.seealso; array_filter array_reduce array_walk