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_mapcom 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
- Definimos o array
$numeroscom os valores de 1 a 5. - Chamamos
array_mappassando uma arrow functionfn($n) => $n * 2que dobra cada número. - O resultado é um novo array
$dobradoscom os valores[2, 4, 6, 8, 10]. - Usamos
implode(', ', $dobrados)para transformar o array em uma string separada por vírgula e espaço. - 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
echodentro do callback em vez de retornar:fn($n) => echo $n * 2causa erro de sintaxe, poisechonão retorna valor. - Tentar modificar o array original diretamente:
array_mapnã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