Özet: Liderlik Tablosu Sıralama
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 26 / 68.
Görev
Kolayİki girdi alacaksınız: birincisi, JSON formatında oyuncu adları ve puanlarından oluşan bir ilişkisel dizi; ikincisi ise bir sıralama düzeni ("asc" veya "desc"). Her iki girdiyi de okuyun, JSON dizesini bir diziye dönüştürün, liderlik tablosunu belirtilen düzene göre puanlara göre sıralayın ve her oyuncunun adını ve puanını şu formatta ayrı bir satıra yazdırın: Name: Score
Oyuncu adı ile puan eşleşmelerini korumak için artan sıralama için asort() ve azalan sıralama için arsort() kullanın.
Girdi formatı:
- Birinci satır: Anahtar olarak oyuncu adlarını ve değer olarak puanları içeren JSON nesnesi (örnek:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - İkinci satır: Sıralama düzeni -
ascveyadesc
Beklenen çıktı: Belirtilen düzene göre sıralanmış, her oyuncunun adı ve puanı Name: Score formatında ayrı bir satırda
Kendin dene
<?php
// JSON girişini oku
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// Sıralama düzenini oku
$order = trim(fgets(STDIN));
// YAPILACAK: Liderlik tablosunu düzene göre sıralamak için kodunuzu aşağıya yazın
// Her oyuncunun adını ve puanını yazdır
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>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 Egzersizi2İ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