Menu
Coddy logo textTech

Transformando com 'array_map'

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 39 de 68.

A função array_map() é uma ferramenta poderosa que transforma cada elemento em um array ao aplicar uma função de callback a cada um deles. Ao contrário de funções que modificam o array original, array_map() cria e retorna um array completamente novo com os valores transformados.

A sintaxe básica requer dois parâmetros: primeiro, a função de callback que você deseja aplicar, e segundo, o array que você deseja transformar. O PHP possui muitas funções integradas que funcionam perfeitamente como callbacks com array_map().

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Resultado: ["ALICE", "BOB", "CHARLIE"]
?>

Neste exemplo, strtoupper é aplicado a cada elemento no array $names. O array original permanece inalterado, enquanto $uppercaseNames contém os resultados transformados. Isso torna o array_map() ideal quando você precisa processar dados sem perder os valores originais.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Você receberá duas entradas: uma lista de preços de produtos separada por vírgulas e uma porcentagem de desconto. A primeira entrada contém os preços como uma string no formato 19.99,25.50,12.75,8.00, e a segunda entrada é a porcentagem de desconto como um número (exemplo: 15).

Leia ambas as entradas, converta os preços separados por vírgulas em um array de números, aplique a porcentagem de desconto a cada preço usando array_map() com a função nativa floatval para conversão e um cálculo para o desconto, e imprima cada preço com desconto em uma linha separada, arredondado para 2 casas decimais.

Para calcular o preço com desconto: multiplique o preço original por (100 - discount) / 100.

Formato de entrada:

  • Primeira linha: Preços dos produtos separados por vírgulas (exemplo: 19.99,25.50,12.75,8.00)
  • Segunda linha: Porcentagem de desconto como um número (exemplo: 15)

Saída esperada: Cada preço com desconto impresso em uma linha separada, arredondado para 2 casas decimais (exemplo: 16.99, 21.68, 10.84, 6.80)

Folha de consulta

A função array_map() transforma cada elemento em um array aplicando uma função de callback a cada um deles. Ela cria e retorna um novo array com os valores transformados, deixando o array original inalterado.

Sintaxe básica com função nativa:

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Resultado: ["ALICE", "BOB", "CHARLIE"]
?>

A função recebe dois parâmetros: a função de callback e o array a ser transformado. Você pode usar funções nativas do PHP ou funções anônimas como callbacks.

Experimente você mesmo

<?php
// Ler a entrada
$prices_input = trim(fgets(STDIN));
$discount = floatval(fgets(STDIN));

// Converter preços separados por vírgula em um array
$prices = explode(',', $prices_input);

// TODO: Escreva seu código abaixo
// Use array_map() para aplicar o desconto a cada preço


// Exibir cada preço com desconto em uma linha separada

?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo