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.

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()

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