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.
Sfida
FacileRiceverai 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);
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online