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.

quiz iconTestez-vous

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

quiz iconTestez-vous

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

quiz iconTestez-vous

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

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

Aide-mémoire

Lors de la fusion de tableaux associatifs avec array_merge(), les clés de chaîne en double sont écrasées par les valeurs des tableaux suivants :

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

Comportements clés :

  • Clés de chaîne portant le même nom : les valeurs des tableaux suivants remplacent les précédentes
  • L'ordre est important : les tableaux listés plus tard ont la priorité
  • Les clés numériques sont toujours réindexées de manière séquentielle
  • Idéal pour les systèmes de configuration avec des valeurs par défaut et des surcharges utilisateur

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