Испытание: Сумма покупок в корзине
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 67 из 68.
Задание
ЛегкоВы получите один входной параметр: строку JSON, представляющую массив товаров в корзине покупок.
Входные данные будут представлять собой строку JSON в следующем формате: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
Прочитайте входные данные и декодируйте строку JSON в массив элементов. Каждый элемент имеет три свойства: name, price и quantity.
Рассчитайте общую стоимость корзины покупок, умножив цену каждого товара на его количество, а затем просуммировав все результаты. Используйте функцию array_reduce() с пользовательской функцией обратного вызова (callback) для расчета этой суммы.
После расчета общей суммы выведите ее в следующем формате:
Total: $[amount]
Отформатируйте сумму ровно до 2 знаков после запятой, используя функцию number_format().
Формат входных данных:
- Одна строка, содержащая JSON-строку, представляющую массив товаров в корзине с ключами
name,priceиquantity
Ожидаемый результат: Одна строка, показывающая общую стоимость в формате: Total: $[amount], где сумма отформатирована до 2 знаков после запятой
Попробуйте сами
<?php
// Чтение входных данных JSON
$input = fgets(STDIN);
// Декодирование строки JSON в массив
$items = (array)json_decode($input, true);
// TODO: Напишите ниже свой код для расчета общей суммы с помощью array_reduce()
// Вывод результата
echo "Total: $" . number_format($total, 2);
?>Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»7Работа с датами и временем
Функция 'date()'Unix-метки времени с 'time()'Введение в объект DateTimeФорматирование объектов DateTimeИзменение объектов DateTimeИтоги: Вычисления с датами10Финальные испытания
Испытание: Проверка палиндромаИспытание: Частота символовИспытание: Сумма покупок в корзинеИспытание: Фильтр уникальных элементов2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров