germanosilva.dev

Quando Usar array_map

array_map é uma função do PHP que aplica uma função de callback a cada elemento de um ou mais arrays e retorna um novo array com os resultados.

Sintaxe

array_map(callback $callback, array $array1, array ...$arrays): array

Parâmetros

  • $callback: Função de callback que será aplicada a cada elemento do array ou arrays. Pode ser uma função nomeada, uma função anônima ou até mesmo null.
  • $array1: O array principal em que a função de callback será aplicada.
  • ...$arrays: Arrays adicionais, caso necessário. Se múltiplos arrays forem passados, a função de callback deve aceitar tantos parâmetros quanto o número de arrays, e cada elemento receberá um valor correspondente de cada array.

Como Funciona

Para cada elemento no array (ou elementos correspondentes em múltiplos arrays), array_map aplica a função de callback e coleta os resultados em um novo array.

Exemplo 1: Uso Básico

Neste exemplo, array_map é usado para elevar cada número ao quadrado:

$numeros = [1, 2, 3, 4];
$quadrados = array_map(function ($n) {
    return $n * $n;
}, $numeros);

print_r($quadrados);
// Saída: [1, 4, 9, 16]

Exemplo 2: Usando array_map com Múltiplos Arrays

Se múltiplos arrays forem passados, array_map aplica a função a elementos correspondentes de cada array.

$numeros1 = [1, 2, 3];
$numeros2 = [4, 5, 6];

$soma = array_map(function ($a, $b) {
    return $a + $b;
}, $numeros1, $numeros2);

print_r($soma);
// Saída: [5, 7, 9]

Exemplo 3: Criando Objetos a Partir de um Array

No exemplo anterior que você mencionou, array_map foi usado para criar um objeto (stdClass) para cada elemento de um array de dados:

$dados = [
    ['id' => 1, 'nome' => 'João'],
    ['id' => 2, 'nome' => 'Maria']
];

$objetos = array_map(function ($item) {
    $obj = new \stdClass();
    foreach ($item as $chave => $valor) {
        $obj->$chave = $valor;
    }
    return $obj;
}, $dados);

print_r($objetos);

Isso produzirá um array de objetos com as propriedades id e nome, com base em cada elemento do array $dados.

Quando Usar array_map

  • Quando você precisa transformar cada elemento de um array com uma função.
  • Quando deseja aplicar a mesma operação em vários arrays

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *