Wyzwanie: suma w koszyku
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 67 z 68.
Wyzwanie
ŁatwyOtrzymasz jedno wejście: ciąg JSON reprezentujący tablicę elementów koszyka zakupowego.
Wejście będzie ciągiem JSON w tym formacie: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
Odczytaj wejście i zdekoduj ciąg JSON do tablicy elementów. Każdy element ma trzy właściwości: name, price i quantity.
Oblicz całkowity koszt koszyka zakupowego, mnożąc cenę każdego elementu przez jego ilość, a następnie sumując wszystkie wyniki. Użyj array_reduce() z niestandardową funkcją zwrotną, aby obliczyć tę sumę.
Po obliczeniu sumy wyświetl ją w następującym formacie:
Total: $[amount]
Sformatuj kwotę, tak aby miała dokładnie 2 miejsca po przecinku, używając number_format().
Format wejścia:
- Jeden wiersz zawierający ciąg JSON reprezentujący tablicę elementów koszyka zakupowego z kluczami
name,priceiquantity
Oczekiwane wyjście: Jeden wiersz pokazujący całkowity koszt w formacie: Total: $[amount], gdzie kwota jest sformatowana do 2 miejsc po przecinku
Spróbuj swoich sił
<?php
// Wczytaj dane wejściowe JSON
$input = fgets(STDIN);
// Zdekoduj ciąg JSON do tablicy
$items = (array)json_decode($input, true);
// TODO: Napisz poniżej kod obliczający sumę za pomocą array_reduce()
// Wyświetl wynik
echo "Total: $" . number_format($total, 2);
?>Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką7Praca z datami i czasem
Funkcja 'date()'Znaczniki czasu Unix za pomocą 'time()'Wprowadzenie do obiektu DateTimeFormatowanie obiektów DateTimeModyfikowanie obiektów DateTimePodsumowanie: obliczenia na datach10Końcowe wyzwania
Wyzwanie: sprawdzanie palindromuWyzwanie: częstotliwość znakówWyzwanie: suma w koszykuWyzwanie: filtrowanie unikalnych elementów2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online