Fácil PHP

Dobrar números com array_map

Enunciado

Dado um array de números inteiros, use array_map para criar um novo array com cada número multiplicado por 2. Exiba o array resultante separado por vírgulas.

Requisitos

  • Use array_map com uma arrow function.
  • O array de entrada deve ser [1, 2, 3, 4, 5].
  • Exiba os valores separados por , (vírgula e espaço).

Código inicial

<?php
$numeros = [1, 2, 3, 4, 5];

// Seu código aqui

Saída esperada

2, 4, 6, 8, 10
Ver dica

A função array_map recebe o callback como primeiro argumento e o array como segundo. Use implode para juntar os valores.

Mostrar solução
<?php
$numeros = [1, 2, 3, 4, 5];

// Aplica a multiplicação por 2 em cada elemento
$dobrados = array_map(fn($n) => $n * 2, $numeros);

// Junta os valores em uma string separada por vírgula e espaço
echo implode(', ', $dobrados);

Passo a passo

  1. Definimos o array $numeros com os valores de 1 a 5.
  2. Chamamos array_map passando uma arrow function fn($n) => $n * 2 que dobra cada número.
  3. O resultado é um novo array $dobrados com os valores [2, 4, 6, 8, 10].
  4. Usamos implode(', ', $dobrados) para transformar o array em uma string separada por vírgula e espaço.
  5. Exibimos a string com echo.

Por que funciona

array_map percorre o array original e aplica a função a cada elemento, retornando um novo array do mesmo tamanho. A arrow function fn($n) => $n * 2 é uma forma concisa de definir o callback. Como não modificamos o array original, ele permanece intacto.

Erros comuns

  • Esquecer de passar o array como segundo argumento: array_map(fn($n) => $n * 2) gera erro de argumentos insuficientes.
  • Usar echo dentro do callback em vez de retornar: fn($n) => echo $n * 2 causa erro de sintaxe, pois echo não retorna valor.
  • Tentar modificar o array original diretamente: array_map não altera o array original, é preciso atribuir o retorno a uma variável.

Outra forma de resolver

Usar um loop foreach:

$dobrados = [];
foreach ($numeros as $n) {
    $dobrados[] = $n * 2;
}
echo implode(', ', $dobrados);

Essa abordagem é preferível quando a lógica é complexa ou precisa de múltiplas operações dentro do loop.

Saída esperada

2, 4, 6, 8, 10