Menu
Coddy logo textTech

Assoziative Arrays zusammenführen

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

Während array_merge() nahtlos mit indizierten Arrays funktioniert, ändert sich sein Verhalten erheblich bei der Arbeit mit assoziativen Arrays. Der entscheidende Unterschied besteht darin, wie es mit doppelten String-Schlüsseln zwischen den zusammengeführten Arrays umgeht.

Beim Zusammenführen von assoziativen Arrays überschreibt der Wert aus dem späteren Array den Wert aus dem früheren Array, wenn beide Arrays denselben String-Schlüssel enthalten:

<?php
$defaults = ["theme" => "light", "language" => "english", "notifications" => true];
$userSettings = ["theme" => "dark", "notifications" => false];
$finalConfig = array_merge($defaults, $userSettings);
print_r($finalConfig);
// Ausgabe: Array ( [theme] => dark [language] => english [notifications] => false )
?>

Beachten Sie, wie „theme“ von „light“ zu „dark“ und „notifications“ von true zu false geändert wurde, während „language“ weiterhin „english“ blieb, da es nicht überschrieben wurde. Dieses Verhalten macht array_merge() perfekt für Konfigurationssysteme, in denen Standardwerte durch Benutzereinstellungen überschrieben werden sollen.

Die Reihenfolge der Argumente ist wichtig – Werte aus Arrays, die später im Funktionsaufruf aufgeführt sind, haben Vorrang vor früheren. Dieses Überschreibungsverhalten gilt nur für String-Schlüssel; numerische Schlüssel werden immer sequenziell neu indiziert, genau wie bei indizierten Arrays.

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 zwei Eingaben: ein Standard-Konfigurations-Array und ein Benutzerpräferenz-Array, beide im JSON-Format. Lesen Sie beide Eingaben ein, konvertieren Sie jeden JSON-String in ein assoziatives Array, verwenden Sie array_merge(), um diese zu kombinieren (wobei die Benutzerpräferenzen die Standardwerte überschreiben), und geben Sie die zusammengeführte Konfiguration mit print_r() aus.

Eingabeformat: Zwei Zeilen - jede Zeile enthält ein JSON-Objekt, das ein assoziatives Array darstellt (Beispiel: {"theme":"light","language":"english"})

Erwartete Ausgabe: Das zusammengeführte Konfigurations-Array, bei dem die Benutzerpräferenzen die Standardwerte überschreiben, angezeigt mittels print_r()

Spickzettel

Beim Zusammenführen von assoziativen Arrays mit array_merge() werden doppelte String-Schlüssel durch Werte aus späteren Arrays überschrieben:

<?php
$defaults = ["theme" => "light", "language" => "english", "notifications" => true];
$userSettings = ["theme" => "dark", "notifications" => false];
$finalConfig = array_merge($defaults, $userSettings);
print_r($finalConfig);
// Ausgabe: Array ( [theme] => dark [language] => english [notifications] => false )
?>

Wichtige Verhaltensweisen:

  • String-Schlüssel mit demselben Namen: Werte aus späteren Arrays überschreiben frühere
  • Die Reihenfolge ist wichtig: Später aufgeführte Arrays haben Vorrang
  • Numerische Schlüssel werden immer sequenziell neu indiziert
  • Ideal für Konfigurationssysteme mit Standardwerten und Benutzerüberschreibungen

Probier es selbst

<?php
// Die beiden JSON-Eingaben lesen
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// JSON-Strings in assoziative Arrays umwandeln
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Schreiben Sie unten Ihren Code, um die Arrays zusammenzuführen


// Die zusammengeführte Konfiguration ausgeben
print_r($mergedConfig);
?>
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