ARRAY_MERGE_RECURSIVE |
Tableau : Fusion récursive |
PHP 4.0.1+ |
Syntaxe
function array_merge_recursive($array1);
|
function array_merge_recursive($array1,...);
|
Paramètres
Nom |
Description |
$array1 |
Ce paramètre permet d'indiquer les tableaux à fusionner. |
Retour
Valeur |
Description |
tableau |
Ces valeurs permettent d'indiquer tous les éléments des tableaux contenu contenu dans un même tableau. |
Description
Cette fonction permet de fusionner ensemble différents tableaux de façon récursive dans tous les sous tableaux.
Remarques
- Fusion récursive des tableaux : Contrairement à array_merge(), la fonction array_merge_recursive() fusionne les sous-tableaux de manière
récursive. Si deux tableaux contiennent une clef identique, leurs valeurs sont combinées dans un tableau imbriqué, ce qui permet de conserver toutes les données sans
écrasement.
- Gestion des clefs associatives : Si une clef associative est présente dans plusieurs tableaux, les valeurs correspondantes sont fusionnées dans un tableau sous
cette clef. Cela diffère de array_merge(), remplaçant simplement la valeur précédente par la nouvelle.
- Gestion des clefs numériques : Pour les clefs numériques, array_merge_recursive() les traite différemment des clefs associatives. Les valeurs des clefs
numériques ne sont pas fusionnées mais ajoutées comme des éléments distincts dans le tableau résultant, ce qui peut entraîner des duplications.
- Utilisation pour structurer des données complexes : Cette fonction est particulièrement utile pour combiner des configurations ou des données hiérarchiques.
Par exemple, elle est fréquemment utilisée pour fusionner des fichiers de configuration ou des paramètres d'application organisés en plusieurs niveaux.
- Problème potentiel avec des doublons non souhaités : En cas de clefs identiques, les valeurs sont systématiquement regroupées dans un tableau, même si ce comportement
n'est pas toujours souhaité. Cela peut entraîner une structure de données plus complexe que prévu et nécessite souvent un traitement supplémentaire.
- Pas de contrôle sur le mode de fusion : array_merge_recursive() applique toujours une fusion imbriquée pour les clefs identiques. Si un comportement différent
est requis (par exemple, écraser les valeurs ou ignorer certaines clefs), il faudra implémenter une solution personnalisée.
- Entrées obligatoires en tant que tableaux : Tous les paramètres passés à array_merge_recursive() doivent être des tableaux. Si un paramètre n'est pas un tableau,
une erreur fatale sera levée en PHP 8+ (ou un avertissement en PHP 7), ce qui peut rendre cette fonction moins tolérante que d'autres méthodes de fusion.
- Impact sur les performances : La nature récursive de array_merge_recursive() peut rendre son utilisation coûteuse en termes de performances, notamment pour
des tableaux de grande taille ou des structures de données complexes. Une attention particulière est nécessaire dans les environnements à ressources limitées.
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 360
Dernière mise à jour : Dimanche, le 22 mars 2015