array_replace

array_replace($array, $replacements, …)

Renvoie le premier tableau dont les valeurs sont remplacées par les valeurs de même clé des autres tableaux. Les clés absentes du premier tableau sont ajoutées à la fin. Contrairement à array_merge(), elle traite les clés numériques comme les clés texte.

Paramètres

  • $array – le tableau de base.
  • $replacements – un tableau avec les nouvelles valeurs. D’autres tableaux peuvent suivre, les suivants ont la priorité.

Exemples

// remplacement par clé numérique
print_r(array_replace(array("a", "b", "c"), array(1 => "B"))); // Array ( [0] => a [1] => B [2] => c )
// array_merge n'écrase pas les clés numériques, il ajoute l'élément
print_r(array_merge(array("a", "b", "c"), array(1 => "B"))); // Array ( [0] => a [1] => b [2] => c [3] => B )
// des réglages par défaut remplacés par les vôtres
$defaults = array("couleur" => "bleu", "taille" => "M");
echo json_encode(array_replace($defaults, array("taille" => "L"))); // {"couleur":"bleu","taille":"L"}
// les nouvelles clés sont ajoutées à la fin, l'ordre n'est pas trié
print_r(array_replace(array(1 => "a"), array(5 => "e", 0 => "z"))); // Array ( [1] => a [5] => e [0] => z )
// plusieurs tableaux : le dernier a la priorité
echo implode(",", array_replace(array("a", "b"), array("X"), array("Y"))); // Y,b
// l'opérateur + a la priorité inverse : il garde les valeurs du tableau de gauche
print_r(array(1 => "a") + array(1 => "X", 2 => "b")); // Array ( [1] => a [2] => b )

Points d’attention

  • Elle convient aux tableaux dont les clés numériques ont un sens (ID d’enregistrements). array_merge() renumérote ces clés et ajoute les valeurs.
  • Elle ne remplace que le premier niveau. Un tableau imbriqué est remplacé entier. array_replace_recursive() fusionne en profondeur.
  • Elle renvoie un nouveau tableau, l’original n’est pas modifié.
  • Pour les clés texte, elle donne le même résultat qu’array_merge().

Fonctions associées :
array_merge()
array_replace_recursive()
array_combine()