Desafio: Total do Carrinho de Compras
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 67 de 68.
Desafio
FácilVocê receberá uma única entrada: uma string JSON representando um array de itens de um carrinho de compras.
A entrada será uma string JSON neste formato: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
Leia a entrada e decodifique a string JSON em um array de itens. Cada item possui três propriedades: name, price e quantity.
Calcule o custo total do carrinho de compras multiplicando o preço de cada item pela sua quantidade e, em seguida, somando todos os resultados. Use array_reduce() com uma função de callback personalizada para calcular este total.
Após calcular o total, exiba-o no seguinte formato:
Total: $[amount]
Formate o valor para exatamente 2 casas decimais usando number_format().
Formato de entrada:
- Uma única linha contendo uma string JSON representando o array de itens do carrinho de compras com as chaves
name,priceequantity
Saída esperada: Uma única linha mostrando o custo total no formato: Total: $[amount] onde o valor é formatado com 2 casas decimais
Experimente você mesmo
<?php
// Lê a entrada JSON
$input = fgets(STDIN);
// Decodifica a string JSON em um array
$items = (array)json_decode($input, true);
// TODO: Escreva seu código abaixo para calcular o total usando array_reduce()
// Exibe o resultado
echo "Total: $" . number_format($total, 2);
?>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 Simples7Trabalhando com Datas e Horas
A Função 'date()'Unix Timestamps com 'time()'Introdução ao Objeto DateTimeFormatando Objetos DateTimeModificando Objetos DateTimeRecapitulação: Cálculos de Data10Desafios Finais
Desafio: Verificador de PalíndromosDesafio: Frequência de CaracteresDesafio: Total do Carrinho de ComprasDesafio: Filtro de Itens Únicos2Manipulaçõ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 Leaderboard