Menu
Coddy logo textTech

Assoziative Arrays nach Schlüssel sortieren

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

Während das Sortieren nach Werten nützlich ist, müssen Sie assoziative Arrays manchmal stattdessen nach ihren Schlüsseln organisieren. PHP bietet ksort() für die aufsteigende Schlüsselreihenfolge und krsort() für die absteigende Schlüsselreihenfolge an, wobei beide die entscheidenden Schlüssel-Wert-Beziehungen beibehalten.

Hier sehen Sie, wie ksort() ein Array alphabetisch nach seinen Schlüsseln sortiert:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// Ausgabe: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

Beachten Sie, wie die Schlüssel nun in alphabetischer Reihenfolge von A bis Z sortiert sind, während jeder Einstellungsname weiterhin korrekt mit seinem Wert verknüpft bleibt. Dies ist besonders nützlich, wenn Sie Konfigurationsoptionen oder Menüpunkte auf eine vorhersehbare, organisierte Weise anzeigen möchten.

Für eine umgekehrte alphabetische Reihenfolge funktioniert krsort() ähnlich, sortiert jedoch die Schlüssel von Z bis A. Beide Funktionen ändern das ursprüngliche Array direkt, genau wie andere PHP-Sortierfunktionen, was sie effizient für die Organisation von Daten macht, bei denen die Reihenfolge der Schlüssel wichtiger ist als die Reihenfolge der Werte.

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 von Abteilungsnamen und deren Budgetzuweisungen im JSON-Format. Lesen Sie die Eingabe ein, konvertieren Sie den JSON-String in ein Array, verwenden Sie ksort(), um die Abteilungen alphabetisch nach ihren Schlüsseln in aufsteigender Reihenfolge zu sortieren, und geben Sie das sortierte Array mit print_r() aus.

Eingabeformat: Eine Zeile, die ein JSON-Objekt mit Abteilungsnamen als Schlüsseln und Budgetbeträgen als Werten enthält (Beispiel: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

Erwartete Ausgabe: Das sortierte assoziative Array in aufsteigender alphabetischer Reihenfolge nach Abteilungsnamen (Schlüsseln), angezeigt mit print_r()

Spickzettel

PHP bietet die Funktionen ksort() und krsort() an, um assoziative Arrays nach ihren Schlüsseln zu sortieren, während die Schlüssel-Wert-Beziehungen beibehalten werden.

ksort() sortiert Schlüssel in aufsteigender alphabetischer Reihenfolge (A bis Z):

ksort($array);

krsort() sortiert Schlüssel in absteigender alphabetischer Reihenfolge (Z bis A):

krsort($array);

Beide Funktionen verändern das ursprüngliche Array direkt:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// Ausgabe: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

Probier es selbst

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

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

// TODO: Schreiben Sie Ihren Code unten, um das Array nach Schlüsseln zu sortieren


// Ergebnis ausgeben
print_r($departments);
?>
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