Menu
Coddy logo textTech

Recap: Leaderboard-Sortierung

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 26 von 68.

challenge icon

Aufgabe

Einfach

Sie 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 asc oder desc

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