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.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachSie 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);
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
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