PHP array_replace_recursive()

La fonction array_replace_recursive() est une fonction intégrée en PHP qui remplace les valeurs du premier tableau par les valeurs des tableaux suivants de manière récursive.
Il effectue le remplacement en fonction des règles ci-dessous:

  • Si une clé du premier tableau existe dans le deuxième tableau, la valeur correspondant à cette clé du premier tableau sera remplacée par la valeur du deuxième tableau.
  • Si la clé existe dans le deuxième tableau mais pas dans le premier, elle sera créée dans le premier tableau.
  • Si une clé n’existe que dans le premier tableau, elle sera gardée telle quelle.
  • Si plusieurs tableaux sont transmis pour le remplacement, ils seront traités dans l’ordre, le dernier tableau écrasant les valeurs précédentes.

 

Syntaxe
array_replace_recursive(arr1, arr2, arr3, ...)

 
 

Paramètres
  • arr1(Obligatoire) : Spécifie un tableau.
  • arr2(Optionnelle) : Spécifie un tableau qui remplacera les valeurs de « arr1 ».
  • arr3(Optionnelle) : Spécifie plus de tableaux pour remplacer les valeurs de « arr1 » et « arr2 », etc. Les valeurs des tableaux ultérieurs écraseront les précédents.

 

Valeur de retour

Renvoie le tableau remplacé ou NULL en cas d’erreur
 

Version PHP:

5.3.0+
 

Exemple :
Entrée: $arr1 = array("a"=>array("PHP"), 
                      "b"=>array("Java"));
					   
        $arr2 = array("a"=>array("Python"), 
                      "b"=>array("C++"));
		
		
Sortie: Array ( 
                [a] => Array ( [0] => Python ) 
                [b] => Array ( [0] => C++  ) 
              )

 
 
Le programme suivant montre le fonctionnement de la fonction array_replace_recursive():

<?php 
	$arr1 = array( "a" => array("1"), "b" => array("2", "3")); 
	$arr2 = array( "a" => array("4"), "b" => array("5")); 
	  
	print_r(array_replace_recursive($arr1, $arr2)); 
?>

 
Sortie:

Array ( 
	[a] => Array ( [0] => 4 ) 
	[b] => Array ( 
			[0] => 5 
			[1] => 3 
	)
)
Questions d'entretiens PHP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *