W3docs

Função Array Map do PHP: Um Guia Completo

A função array_map em PHP é uma ferramenta essencial para transformar arrays de dados, aplicando um callback a cada elemento e retornando um novo array.

A função array_map em PHP é uma ferramenta essencial para transformar arrays de dados. Ela permite que os desenvolvedores apliquem uma função de callback a cada elemento de um array e retornem um novo array com os resultados. Essa é uma técnica versátil e poderosa para processar dados em PHP, podendo ser utilizada em uma ampla variedade de aplicações.

Como funciona o array_map?

A sintaxe básica da função array_map é a seguinte:

Sintaxe da função array_map em PHP

array_map(callback, array1, array2, ...);

Aqui, o argumento callback é a função que será aplicada a cada elemento dos arrays. Os demais argumentos são os arrays a serem processados. Por exemplo, considere o seguinte código:

Exemplo de uso da função array_map em PHP

php— editable, runs on the server

Este código define uma função simples, square, que recebe um número e retorna seu quadrado. A função array_map é então usada para aplicar essa função a cada elemento do array $numbers. O resultado é um novo array, $squared, que contém os quadrados dos números originais.

Observação sobre o comprimento dos arrays: Quando múltiplos arrays são passados para array_map, o processamento continua até que o array mais longo seja esgotado. Se os arrays tiverem comprimentos diferentes, os elementos ausentes nos arrays menores são automaticamente tratados como null.

Observação sobre a sintaxe moderna: No PHP 7.4+, você pode usar arrow functions para callbacks concisos. Por exemplo: array_map(fn($n) => $n * $n, $numbers);

Exemplos práticos de array_map

A função array_map é extremamente versátil e pode ser usada em muitos contextos diferentes. Veja alguns exemplos para ter uma ideia do seu poder:

Transformando arrays de strings

PHP: Transformando arrays de strings com a função array_map

php— editable, runs on the server

Neste exemplo, a função array_map é usada para converter um array de strings para maiúsculas. A função upper recebe uma string e retorna sua versão em maiúsculas. Quando essa função é aplicada a cada elemento do array $words, o resultado é um novo array com as versões em maiúsculas das palavras originais.

Combinando arrays com array_map

PHP: Combinando arrays com array_map

php— editable, runs on the server

Neste exemplo, dois arrays, $a e $b, são combinados em um terceiro array, $c. A função sum recebe dois argumentos e retorna a soma deles. A função array_map é usada para aplicar essa função a cada par correspondente de elementos em $a e $b. O resultado é um novo array, $c, que contém as somas dos pares originais.

Compactando arrays com callback null

Se você passar null como callback, array_map compacta os arrays — cada elemento do resultado é um array com os valores correspondentes de cada array de entrada. Isso é útil para emparelhar dados relacionados sem precisar escrever uma função.

PHP: compactando arrays com array_map e callback null

<?php

$ids   = [1, 2, 3];
$names = ['Alice', 'Bob', 'Carol'];

$pairs = array_map(null, $ids, $names);

print_r($pairs);

?>

O resultado é [[1, 'Alice'], [2, 'Bob'], [3, 'Carol']] — um array interno por linha.

Armadilhas e pontos de atenção

  • As chaves são preservadas apenas com um único array. Quando você passa um array, array_map mantém as chaves originais. Com dois ou mais arrays, o resultado é reindexado com chaves inteiras sequenciais, portanto quaisquer chaves string são perdidas.
  • array_map não modifica o array original. Ele sempre retorna um novo array. Se quiser transformar um array no lugar, use array_walk.
  • O callback deve ser chamável. Passe o nome de uma função como string ('square'), uma função anônima, uma arrow function ou um array [$object, 'method']. Consulte funções de callback em PHP para a lista completa de formas aceitas.

Quando usar array_map em vez de outras funções de array

  • Use array_map para transformar cada elemento em um novo valor (um elemento de entrada → um elemento de saída).
  • Use array_filter quando quiser manter apenas os elementos que passam em um teste.
  • Use array_reduce quando quiser reduzir o array a um único valor, como uma soma ou uma string concatenada.

Conclusão

A função array_map em PHP é uma ferramenta incrivelmente poderosa para transformar arrays de dados. Seja para converter strings para maiúsculas, combinar arrays ou realizar algum outro tipo de cálculo, array_map é a ferramenta ideal para o trabalho. Com sua sintaxe flexível e a capacidade de trabalhar com múltiplos arrays ao mesmo tempo, ela é uma função indispensável para qualquer desenvolvedor PHP.

Prática

Prática
O que é verdadeiro sobre a função array_map() em PHP?
O que é verdadeiro sobre a função array_map() em PHP?
Was this page helpful?