Menu
Coddy logo textTech

Assoziative Arrays nach Wert sortieren

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

Beim Arbeiten mit assoziativen Arrays müssen Sie diese oft nach ihren Werten sortieren, während die Schlüssel-Wert-Beziehungen erhalten bleiben. PHP bietet für diesen Zweck zwei spezialisierte Funktionen an: asort() für aufsteigende Sortierung und arsort() für absteigende Sortierung.

Hier erfahren Sie, wie asort() funktioniert, um nach Werten in aufsteigender Reihenfolge zu sortieren:

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// Outputs: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

Beachten Sie, wie die Noten nun vom niedrigsten zum höchsten Wert geordnet sind, aber der Name jedes Schülers korrekt mit seiner Note verknüpft bleibt. Dies ist der entscheidende Vorteil von asort() gegenüber dem regulären sort()—es behält die Zuordnung zwischen Schlüsseln und Werten bei.

Für eine absteigende Sortierung funktioniert arsort() ähnlich, ordnet die Werte jedoch von höchstem zu niedrigstem an:

<?php
arsort($students);
print_r($students);
// Ausgabe: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Beide Funktionen verändern das ursprüngliche Array direkt, genau wie ihre Gegenstücke für indizierte Arrays. Dies macht sie ideal für die Organisation von Daten wie Schülernoten, Produktpreisen oder jedes Szenario, in dem Sie nach Werten sortieren müssen, während die Schlüssel-Wert-Paare intakt bleiben.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

challenge icon

Aufgabe

Einfach

Sie erhalten eine Eingabe: ein assoziatives Array mit Mitarbeiternamen und deren Gehältern im JSON-Format. Lesen Sie die Eingabe ein, konvertieren Sie den JSON-String in ein Array, verwenden Sie arsort(), um die Mitarbeiter nach Gehalt in absteigender Reihenfolge (vom höchsten zum niedrigsten) zu sortieren, und geben Sie das sortierte Array mit print_r() aus.

Eingabeformat: Eine Zeile, die ein JSON-Objekt mit Mitarbeiternamen als Schlüsseln und Gehältern als Werten enthält (Beispiel: {"John":45000,"Sarah":52000,"Mike":38000,"Lisa":61000})

Erwartete Ausgabe: Das sortierte assoziative Array in absteigender Reihenfolge nach Gehaltswerten, angezeigt mittels print_r()

Spickzettel

Verwenden Sie asort(), um assoziative Arrays nach Werten in aufsteigender Reihenfolge zu sortieren, während die Schlüssel-Wert-Beziehungen beibehalten werden:

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// Ausgabe: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

Verwenden Sie arsort(), um assoziative Arrays nach Werten in absteigender Reihenfolge zu sortieren:

<?php
arsort($students);
print_r($students);
// Ausgabe: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Beide Funktionen ändern das ursprüngliche Array direkt und behalten die Zuordnung zwischen Schlüsseln und Werten bei, im Gegensatz zum regulären sort().

Probier es selbst

<?php
// Eingabe lesen
$input = fgets(STDIN);

// JSON in assoziatives Array umwandeln
$employees = (array)json_decode($input, true);

// TODO: Schreiben Sie Ihren Code unten, um das Array nach Gehalt absteigend zu sortieren


// Das sortierte Array ausgeben
print_r($employees);
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf