Aller au contenu

Fonction PHP : array_replace_recursive()

La fonction array_replace_recursive() de PHP est un outil puissant pour fusionner des tableaux tout en conservant la structure et les clés des tableaux d'origine. Elle fonctionne en remplaçant les éléments du premier tableau par ceux des tableaux suivants de manière récursive. Cette fonction est particulièrement utile lors de la manipulation de tableaux de tableaux, car elle permet de modifier facilement les tableaux imbriqués sans perdre de données.

Syntaxe

La syntaxe de la fonction array_replace_recursive() est simple : le premier argument est le tableau qui sera modifié et les arguments suivants sont des tableaux dont les éléments seront fusionnés dans le premier tableau.

PHP array_replace_recursive function syntax

php
array_replace_recursive ( array &$array1, array $array2 [, array ...$arrayN ] ) : array

Fonctionnement

La fonction array_replace_recursive() fonctionne en parcourant tous les éléments des tableaux passés en arguments. Pour chaque élément, la fonction vérifie si la clé existe dans le premier tableau. Si la clé n'existe pas, l'élément est simplement ajouté au premier tableau. Si la clé existe, la fonction vérifie si la valeur est un tableau. Si c'est le cas, elle s'appelle récursivement avec la valeur actuelle du premier tableau et la valeur correspondante du second tableau en arguments. Si la valeur n'est pas un tableau, elle est simplement remplacée par la valeur du second tableau.

Ce processus est répété pour tous les tableaux suivants passés en arguments, les éléments étant ajoutés ou remplacés dans le premier tableau si nécessaire. Le résultat final est un seul tableau issu de la fusion de tous les éléments des tableaux d'entrée. Remarque : Contrairement à array_merge_recursive(), cette fonction remplace les clés numériques au lieu de les fusionner par index.

Exemples

Voici quelques exemples d'utilisation pratique de la fonction array_replace_recursive() :

PHP example of array_replace_recursive function usage

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => ['b' => 'd']];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

Le résultat de ce code sera :


console
Array
(
    [a] => Array
        (
            [b] => d
        )
)

Comme vous pouvez le voir, la valeur de la clé "b" dans le premier tableau a été remplacée par la valeur correspondante du second tableau.

Un autre exemple :

PHP Another example of array_replace_recursive function usage

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => 'd'];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

Le résultat de ce code sera :


console
Array
(
    [a] => d
)

Dans ce cas, la clé "a" du second tableau a remplacé la valeur correspondante dans le premier tableau, y compris le tableau imbriqué.

Conclusion

En conclusion, la fonction array_replace_recursive() de PHP offre un moyen pratique de fusionner des tableaux tout en préservant leur structure et leurs clés d'origine. Elle est particulièrement utile pour mettre à jour des données de configuration imbriquées ou fusionner des ensembles de données structurées sans itération manuelle.

Pratique

Que fait la fonction array_replace_recursive() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.