Den besten Schüler finden
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 37 von 68.
Aufgabe
EinfachSie erhalten eine Eingabe: ein JSON-Objekt, das das Notenbuch der Schüler darstellt. Das Notenbuch verwendet Schülernamen als Schlüssel, wobei jeder Schüler eine "id" und ein "grades" Array mit seinen Testergebnissen hat.
Lesen Sie die Eingabe ein, konvertieren Sie den JSON-String in ein Notenbuch-Array, finden Sie den Schüler mit der höchsten Durchschnittsnote und geben Sie den Namen dieses besten Schülers aus.
Um den besten Schüler zu finden: Berechnen Sie die Durchschnittsnote für jeden Schüler, indem Sie seine Noten summieren und durch die Anzahl der Noten dividieren, und bestimmen Sie dann, welcher Schüler den höchsten Durchschnitt hat.
Eingabeformat: Eine Zeile, die ein JSON-Objekt enthält, das das Notenbuch darstellt (Beispiel: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Erwartete Ausgabe: Der Name des Schülers mit der höchsten Durchschnittsnote (Beispiel: Bob)
Probier es selbst
<?php
// Die JSON-Eingabe lesen
$input = fgets(STDIN);
// JSON in ein Array umwandeln
$gradebook = (array)json_decode($input, true);
// TODO: Schreiben Sie Ihren Code unten
// Berechnen Sie die Durchschnittsnote für jeden Schüler
// Finden Sie den Schüler mit dem höchsten Durchschnitt
// Geben Sie den Namen des besten Schülers aus
echo $topStudent;
?>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-Übung5Schüler-Notenbuch
Projekt-Setup: DatenstrukturEinen neuen Schüler hinzufügenEinem Schüler eine Note hinzufügenDurchschnittsnote eines Schülers berechnenDen besten Schüler findenEin Zeugnis erstellen3Arrays 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