Menu
Coddy logo textTech

Fusionar arrays asociativos

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 15 de 68.

Aunque array_merge() funciona perfectamente con arrays indexados, su comportamiento cambia significativamente al trabajar con arrays asociativos. La diferencia clave es cómo gestiona las claves de cadena duplicadas entre los arrays que se están fusionando.

Al combinar arrays asociativos, si ambos arrays contienen la misma clave de cadena, el valor del array posterior sobrescribirá el valor del array anterior:

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

Observa cómo "theme" cambió de "light" a "dark" y "notifications" cambió de true a false, mientras que "language" permaneció en "english" porque no se sobrescribió. Este comportamiento hace que array_merge() sea perfecto para sistemas de configuración en los que quieres que los valores predeterminados sean sobrescritos por las preferencias del usuario.

El orden de los argumentos importa: los valores de los arrays incluidos más adelante en la llamada a la función tienen prioridad sobre los anteriores. Este comportamiento de sobrescritura solo se aplica a las claves de cadena; las claves numéricas siempre se vuelven a indexar secuencialmente, igual que con los arrays indexados.

challenge icon

Desafío

Fácil

Recibirás dos entradas: un array de configuración predeterminado y un array de preferencias del usuario, ambos en formato JSON. Lee ambas entradas, convierte cada cadena JSON en un array asociativo, usa array_merge() para combinarlos (con las preferencias del usuario sobrescribiendo los valores predeterminados) e imprime la configuración combinada usando print_r().

Formato de entrada: Dos líneas: cada línea contiene un objeto JSON que representa un array asociativo (ejemplo: {"theme":"light","language":"english"})

Salida esperada: El array de configuración combinado, donde las preferencias del usuario sobrescriben los valores predeterminados, mostrado mediante print_r()

Pruébalo tú mismo

<?php
// Lee las dos entradas JSON
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// Convierte las cadenas JSON a arrays asociativos
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Escribe tu código debajo para fusionar los arrays


// Muestra la configuración fusionada
print_r($mergedConfig);
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de PHP online