array_merge

(PHP 4, PHP 5)

array_merge -- Egyesít egy vagy több tömböt

Leírás

array array_merge ( array array1 [, array array2 [, array ...]] )

Az array_merge() egyesíti egy vagy több tömb elemeit úgy, hogy a második tömb elemeit hozzáfűzi az elsőéhez, és visszadja az eredményül kapott tömböt.

Ha a megadott tömbökben ugyanolyan string kulcsok vannak, akkor a későbbi felülírja az előzőt. Ha a tömböknek ugyanolyan numerikus indexei vannak, akkor nem ez történik, hanem mindegyiket új értékként a tömbbe illeszti.

Ha csak egy tömböt adsz meg, és az számokkal van indexelve, a kulcsok újraindexelődnek folytonos módon. Asszociatív tömbök esetén a többszörös bejegyzéseket az utolsó fogja képviselni. Lásd a harmadik példát.

Példa 1. array_merge() példa

<?php
$tomb1
= array("szín" => "piros", 2, 4);
$tomb2 = array("a", "b", "szín" => "zöld", "alak" => "trapéz", 4);
$eredmeny = array_merge ($tomb1, $tomb2);
print_r($eredmeny);
?>

Az $eredmeny tömb értéke:

Array
(
    [szín] => zöld
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [alak] => trapéz
    [4] => 4
)

Példa 2. Egyszerű array_merge() példa

<?php
$tomb1    
= array();
$tomb2    = array(1 => "adat");
$eredmeny = array_merge($tomb1, $tomb2);
?>

Nem szabad elfelejteni, hogy a numerikus indexeket újraszámozza a függvény!

Array
(
    [0] => adat
)

Ha teljesen meg kell őrizni a tömb indexeit, akkor a + operátorral kell egymáshoz fűzni azokat:

$tomb1    = array();
$tomb2    = array(1 => "adat");
$eredmeny = $tomb1 + $tomb2;

A numerikus kulcsot megőrizzük, ezért a társítás megmarad.

Array
(
    [1] => adat
)

Példa 3. array_merge() példa

<?php
$tomb1
= array(0 => "jay", 1 => "bob", 2 => "randal", 3 => "dante");
$tomb2 = array("jay" => "bob", "randal" => "dante", "jay" => "jason");

unset(
$tomb1[2]);

$eredmeny1 = array_merge($tomb1);
$eredmeny2 = array_merge($tomb2);

print_r($eredmeny1);
print_r($eredmeny2);
?>

A fenti példa a következő kimenetet adja:

Array
(
    [0] => jay
    [1] => bob
    [2] => dante
)
Array
(
    [jay] => jason
    [randal] => dante
)

Megjegyzés: A közös indexek "elnyomják" egymást, ami azt jelenti, hogy az első index előforduláshoz tartozó értéket fogja az eredmény tartalmazni.

Figyelem

Az array_merge() függvény viselkedése a PHP 5-ben megváltozott. Ellentétben a korábbiakkal, már csak tömb típusú paramétereket fogad el. Ez típuskényszerítéssel áthidalható. Hogy hogyan, lásd az alábbi példát:

Példa 4. array_merge() PHP 5 példa

<?php
$eleje
= 'egy valami';
$vege  = array(1 => 'másik valami');
$result = array_merge((array)$eleje, (array)$vege);
?>

A fenti példa a következő kimenetet adja:

Array
(
    [0] => egy valami
    [1] => másik valami
)

Lásd még az array_merge_recursive() és az array_combine() függvényt valamint a tömboperátorokat!