array_merge_recursive în PHP

Tablouri (array) PHP 4.0.1+

Unește tablouri, inclusiv tablourile din interior. Valorile cu aceeași cheie text sunt păstrate împreună.

Sintaxă
array_merge_recursive(array ...$arrays): array

Ce face array_merge_recursive

Spre deosebire de array_merge, care suprascrie valorile cu aceeași cheie text, array_merge_recursive le păstrează pe toate: le pune împreună într-un tablou.

Comportamentul este util la combinarea listelor (de exemplu etichete din mai multe surse), dar surprinde la setări: o valoare simplă suprascrisă devine tablou.

Parametri

Parametru Descriere
$arrays Tablourile de unit.

Ce returnează

Un tablou nou.

Exemple

Exemplul 1: Liste combinate

<?php
$a = ["etichete" => ["php", "mysql"]];
$b = ["etichete" => ["css"]];

print_r(array_merge_recursive($a, $b));

Rezultat

Array
(
    [etichete] => Array
        (
            [0] => php
            [1] => mysql
            [2] => css
        )

)

Exemplul 2: Surpriza la valori simple

Cu array_merge, tema ar fi fost înlocuită. Aici devine un tablou cu ambele valori.

<?php
$implicit = ["tema" => "light"];
$utilizator = ["tema" => "dark"];

print_r(array_merge($implicit, $utilizator));
print_r(array_merge_recursive($implicit, $utilizator));

Rezultat

Array
(
    [tema] => dark
)
Array
(
    [tema] => Array
        (
            [0] => light
            [1] => dark
        )

)

Greșeli frecvente

  • Folosești array_merge_recursive pentru setări suprascrise. Pentru înlocuire în adâncime folosește array_replace_recursive.

Comenzi înrudite

  • array_merge: Unește două sau mai multe tablouri într-unul singur.
  • array_replace: Înlocuiește valorile unui tablou cu valorile de la aceleași chei din alte tablouri.