Recap: Leaderboard-Sortierung
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 26 von 68.
Aufgabe
EinfachSie erhalten zwei Eingaben: erstens ein assoziatives Array mit Spielernamen und deren Punktzahlen im JSON-Format und zweitens eine Sortierreihenfolge (entweder "asc" oder "desc"). Lesen Sie beide Eingaben ein, konvertieren Sie den JSON-String in ein Array, sortieren Sie die Bestenliste nach Punktzahlen gemäß der angegebenen Reihenfolge und geben Sie den Namen und die Punktzahl jedes Spielers in einer separaten Zeile im Format Name: Score aus.
Verwenden Sie asort() für aufsteigende Reihenfolge und arsort() für absteigende Reihenfolge, um die Zuordnungen der Spielernamen zu ihren Punktzahlen beizubehalten.
Eingabeformat:
- Erste Zeile: JSON-Objekt mit Spielernamen als Schlüsseln und Punktzahlen als Werten (Beispiel:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - Zweite Zeile: Sortierreihenfolge - entweder
ascoderdesc
Erwartete Ausgabe: Der Name und die Punktzahl jedes Spielers in einer separaten Zeile im Format Name: Score, sortiert nach der angegebenen Reihenfolge
Probier es selbst
<?php
// Die JSON-Eingabe lesen
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// Die Sortierreihenfolge lesen
$order = trim(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten, um die Bestenliste basierend auf der Reihenfolge zu sortieren
// Den Namen und die Punktzahl jedes Spielers ausgeben
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung