Meydan Okuma: Alışveriş Sepeti Toplamı
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 67 / 68.
Görev
KolayTek bir girdi alacaksınız: bir alışveriş sepeti öğeleri dizisini temsil eden bir JSON dizesi.
Girdi şu formatta bir JSON dizesi olacaktır: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
Girdiyi okuyun ve JSON dizesini bir öğe dizisine dönüştürün. Her öğenin üç özelliği vardır: name, price ve quantity.
Her öğenin fiyatını miktarıyla çarparak ve ardından tüm sonuçları toplayarak alışveriş sepetinin toplam maliyetini hesaplayın. Bu toplamı hesaplamak için özel bir geri çağırma fonksiyonu ile array_reduce() kullanın.
Toplamı hesapladıktan sonra şu formatta yazdırın:
Total: $[amount]
number_format() kullanarak miktarı tam olarak 2 ondalık basamak olacak şekilde biçimlendirin.
Input format:
name,pricevequantityanahtarlarını içeren alışveriş sepeti öğeleri dizisini temsil eden bir JSON dizesi içeren tek bir satır
Expected output: Toplam maliyeti şu formatta gösteren tek bir satır: Total: $[amount] (burada miktar 2 ondalık basamağa göre biçimlendirilmiştir)
Kendin dene
<?php
// JSON girişini oku
$input = fgets(STDIN);
// JSON dizesini bir diziye dönüştür
$items = (array)json_decode($input, true);
// YAPILACAK: array_reduce() kullanarak toplamı hesaplamak için kodunuzu aşağıya yazın
// Sonucu yazdır
echo "Total: $" . number_format($total, 2);
?>Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi7Tarih ve Saatlerle Çalışmak
'date()' Fonksiyonu'time()' ile Unix Zaman DamgalarıDateTime Nesnesine GirişDateTime Nesnelerini BiçimlendirmeDateTime Nesnelerini DeğiştirmeÖzet: Tarih Hesaplamaları10Final Meydan Okumaları
Meydan Okuma: Palindrom KontrolüMeydan Okuma: Karakter SıklığıMeydan Okuma: Alışveriş Sepeti ToplamıMeydan Okuma: Benzersiz Öge Filtresi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama