Menu
Coddy logo textTech

Mesclando Arrays Associativos

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 15 de 68.

Embora array_merge() funcione perfeitamente com arrays indexados, seu comportamento muda significativamente ao trabalhar com arrays associativos. A principal diferença está na forma como ele lida com chaves de string duplicadas entre os arrays que estão sendo mesclados.

Ao mesclar arrays associativos, se ambos os arrays contiverem a mesma chave de string, o valor do array posterior substituirá o valor do 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 )
?>

Observe como "theme" mudou de "light" para "dark" e "notifications" mudou de true para false, enquanto "language" permaneceu "english", pois não foi substituído. Esse comportamento torna array_merge() perfeito para sistemas de configuração nos quais você quer que os valores padrão sejam substituídos pelas preferências do usuário.

A ordem dos argumentos é importante: os valores de arrays listados posteriormente na chamada de função têm precedência sobre os anteriores. Esse comportamento de sobrescrita se aplica apenas a chaves de string; as chaves numéricas são sempre reindexadas sequencialmente, assim como acontece com arrays indexados.

challenge icon

Desafio

Fácil

Você receberá duas entradas: uma matriz de configuração padrão e uma matriz de preferências do usuário, ambas no formato JSON. Leia ambas as entradas, converta cada string JSON em uma matriz associativa, use array_merge() para combiná-las (com as preferências do usuário substituindo os valores padrão) e imprima a configuração mesclada usando print_r().

Formato da entrada: Duas linhas — cada linha contém um objeto JSON que representa uma matriz associativa (exemplo: {"theme":"light","language":"english"})

Saída esperada: A matriz de configuração mesclada, na qual as preferências do usuário substituem os valores padrão, exibida usando print_r()

Experimente você mesmo

<?php
// Leia as duas entradas JSON
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// Converta as strings JSON em arrays associativos
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Escreva seu código abaixo para mesclar os arrays


// Exiba a configuração mesclada
print_r($mergedConfig);
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de PHP online