Menu
Coddy logo textTech

Unire array associativi

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 15 di 68.

Anche se array_merge() funziona senza problemi con gli array indicizzati, il suo comportamento cambia notevolmente quando si lavora con array associativi. La differenza principale riguarda il modo in cui gestisce le chiavi stringa duplicate tra gli array uniti.

Quando si uniscono array associativi, se entrambi gli array contengono la stessa chiave stringa, il valore dell’array successivo sovrascriverà il valore dell’array precedente:

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

Nota come "theme" è cambiato da "light" a "dark" e "notifications" è passato da true a false, mentre "language" è rimasto "english" perché non è stato sovrascritto. Questo comportamento rende array_merge() perfetto per i sistemi di configurazione in cui vuoi che i valori predefiniti vengano sovrascritti dalle preferenze dell'utente.

L’ordine degli argomenti è importante: i valori degli array elencati più avanti nella chiamata di funzione hanno la precedenza su quelli precedenti. Questo comportamento di sovrascrittura si applica solo alle chiavi stringa; le chiavi numeriche vengono sempre reindicizzate in sequenza, proprio come negli array indicizzati.

challenge icon

Sfida

Facile

Riceverai due input: un array di configurazione predefinita e un array di preferenze utente, entrambi in formato JSON. Leggi entrambi gli input, converti ogni stringa JSON in un array associativo, usa array_merge() per combinarli (con le preferenze utente che sovrascrivono i valori predefiniti) e stampa la configurazione unita usando print_r().

Formato dell'input: Due righe: ciascuna contiene un oggetto JSON che rappresenta un array associativo (esempio: {"theme":"light","language":"english"})

Output previsto: L'array di configurazione unito, in cui le preferenze utente sovrascrivono i valori predefiniti, visualizzato usando print_r()

Provalo tu

<?php
// Leggi i due input JSON
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// Converti le stringhe JSON in array associativi
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Scrivi il tuo codice qui sotto per unire gli array


// Visualizza la configurazione risultante dall'unione
print_r($mergedConfig);
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online