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.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilVocê 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
?>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
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard6Funções de Ordem Superior para Arrays
Transformando com 'array_map''array_map' com Funções PersonalizadasFiltrando com 'array_filter''array_filter' com Funções PersonalizadasReduzindo com 'array_reduce'Percorrendo com 'array_walk'Recapitulação: Processamento de Dados