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.

Alors que array_merge() fonctionne parfaitement avec les tableaux indexés, son comportement change considérablement lorsqu'il s'agit de tableaux associatifs. La différence principale réside dans la manière dont il gère les clés de chaîne de caractères en double entre les tableaux fusionnés.

Lors de la fusion de tableaux associatifs, si les deux tableaux contiennent la même clé de type chaîne, la valeur du dernier tableau écrasera la valeur du premier tableau :

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

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

L'ordre des arguments est important — les valeurs des tableaux listés plus tard dans l'appel de la fonction l'emportent sur les précédentes. Ce comportement d'écrasement ne s'applique qu'aux clés de type chaîne de caractères ; les clés numériques sont toujours réindexées de manière séquentielle, tout comme avec 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 un tableau associatif, utilisez array_merge() pour les combiner (les préférences utilisateur remplaçant les valeurs par défaut), et affichez la configuration fusionnée en utilisant print_r().

Format d'entrée : 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é où 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