array_replace în PHP

Tablouri (array) PHP 5.3+

Înlocuiește valorile unui tablou cu valorile de la aceleași chei din alte tablouri.

Sintaxă
array_replace(array $array, array ...$replacements): array

Ce face array_replace

array_replace ia primul tablou și suprascrie, cheie cu cheie, valorile din tablourile următoare. Cheile care nu existau sunt adăugate.

Diferența față de array_merge: array_replace tratează și cheile numerice ca pe chei normale, deci nu le renumerotează și nu le adaugă la final. Varianta array_replace_recursive intră și în tablourile interioare.

Parametri

Parametru Descriere
$array Tabloul de pornire.
$replacements Tablourile ale căror valori le înlocuiesc pe cele existente.

Ce returnează

Un tablou nou.

Exemple

Exemplul 1: Înlocuire după poziție

<?php
$zile = ["luni", "marți", "miercuri"];

print_r(array_replace($zile, [1 => "MARȚI"], [3 => "joi"]));

Rezultat

Array
(
    [0] => luni
    [1] => MARȚI
    [2] => miercuri
    [3] => joi
)

Exemplul 2: Diferența față de array_merge

<?php
$a = [0 => "Ana", 1 => "Mihai"];
$b = [0 => "Ioana"];

print_r(array_merge($a, $b));
print_r(array_replace($a, $b));

Rezultat

Array
(
    [0] => Ana
    [1] => Mihai
    [2] => Ioana
)
Array
(
    [0] => Ioana
    [1] => Mihai
)

Greșeli frecvente

  • Folosești array_replace pe setări cu tablouri interioare și pierzi cheile interioare care nu sunt în al doilea tablou. Pentru asta există array_replace_recursive.

Comenzi înrudite

  • array_merge: Unește două sau mai multe tablouri într-unul singur.
  • array_merge_recursive: Unește tablouri, inclusiv tablourile din interior. Valorile cu aceeași cheie text sunt păstrate împreună.