Desafío: Total del carrito de compras
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 67 de 68.
Desafío
FácilRecibirás una única entrada: una cadena JSON que representa un array de artículos de un carrito de compras.
La entrada será una cadena JSON en este formato: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
Lee la entrada y decodifica la cadena JSON en un array de artículos. Cada artículo tiene tres propiedades: name, price y quantity.
Calcula el costo total del carrito de compras multiplicando el precio de cada artículo por su cantidad, y luego sumando todos los resultados. Utiliza array_reduce() con una función de callback personalizada para calcular este total.
Después de calcular el total, imprímelo en el siguiente formato:
Total: $[amount]
Formatea el monto exactamente a 2 decimales usando number_format().
Formato de entrada:
- Una sola línea que contiene una cadena JSON que representa el array de artículos del carrito de compras con las claves
name,priceyquantity
Salida esperada: Una sola línea que muestre el costo total en el formato: Total: $[amount] donde el monto está formateado a 2 decimales
Pruébalo tú mismo
<?php
// Leer la entrada JSON
$input = fgets(STDIN);
// Decodificar la cadena JSON en un array
$items = (array)json_decode($input, true);
// TODO: Escribe tu código a continuación para calcular el total usando array_reduce()
// Mostrar el resultado
echo "Total: $" . number_format($total, 2);
?>Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple7Trabajando con fechas y horas
La función 'date()'Timestamps de Unix con 'time()'Introducción al objeto DateTimeFormateo de objetos DateTimeModificación de objetos DateTimeResumen: Cálculos con fechas10Desafíos finales
Desafío: Verificador de palíndromosDesafío: Frecuencia de caracteresDesafío: Total del carrito de comprasDesafío: Filtro de elementos únicos2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación