Menu
Coddy logo textTech

Fusionner des tableaux associatifs

Fait partie de la section Logique & Flux du Journey PHP de Coddy. Leçon 15 sur 68.

Bien que array_merge() fonctionne parfaitement avec les tableaux indexés, son comportement change considérablement lorsqu’il est utilisé avec des tableaux associatifs. La différence essentielle réside dans la manière dont il gère les clés de chaîne dupliquées entre les tableaux fusionnés.

Lors de la fusion de tableaux associatifs, si les deux tableaux contiennent la même clé de chaîne, la valeur du tableau situé plus tard remplacera la valeur du tableau situé plus tôt :

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

Remarquez que « theme » est passé de « light » à « dark » et que « notifications » est passé de true à false, tandis que « language » est resté « english », puisqu’il n’a pas été remplacé. Ce comportement rend array_merge() parfait pour les systèmes de configuration où vous souhaitez que les valeurs par défaut soient remplacées par les préférences de l’utilisateur.

L’ordre des arguments est important : les valeurs des tableaux répertoriés plus tard dans l’appel de fonction prennent le pas sur celles répertoriées plus tôt. Ce comportement d’écrasement s’applique uniquement aux clés de type chaîne ; les clés numériques sont toujours réindexées séquentiellement, comme pour les tableaux indexés.

challenge icon

Défi

Facile

Vous recevrez deux entrées : un tableau de configuration par défaut et un tableau de préférences utilisateur, tous deux au format JSON. Lisez les deux entrées, convertissez chaque chaîne JSON en tableau associatif, utilisez array_merge() pour les combiner (les préférences utilisateur remplaçant les valeurs par défaut), puis affichez la configuration fusionnée à l’aide de print_r().

Format des entrées : Deux lignes — chaque ligne contient un objet JSON représentant un tableau associatif (exemple : {"theme":"light","language":"english"})

Sortie attendue : Le tableau de configuration fusionné, dans lequel les préférences utilisateur remplacent les valeurs par défaut, affiché à l’aide de print_r()

Essayez vous-même

<?php
// Lire les deux entrées JSON
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// Convertir les chaînes JSON en tableaux associatifs
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Écrivez votre code ci-dessous pour fusionner les tableaux


// Afficher la configuration fusionnée
print_r($mergedConfig);
?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur PHP en ligne