array_merge

PHP -> Funkcie -> Array funkcie -> array_merge

Syntax

array array_merge ( array pole1 [, array pole2 [, array ...] ] )

Popis

Príkaz jazyka PHP
array_merge() spája elementy dvoch alebo viacerých polí dokopy tak, že hodnoty jedného sú pripojené na koniec predchádzajúceho. Vracia výsledné pole.

Ak majú vstupné polia rovnaké reťazcové kľúče, tak neskoršia hodnota pre ten kľúč prepíše predchádzajúci. Ale ak polia obsahujú číselné kľúče, neskoršia hodnota neprepíše pôvodnú hodnotu, ale pripojí sa k nej.

Ak je dané iba jedno pole a pole je indexované numericky, kľúče sa preindexujú súvislým spôsobom. Pre asociatívne polia, duplikátne položky sa spoja do posledného. Pozrite si príklad tri pre detaily.

Príklady

<?php
$pole1 = array("farba" => "cervena", 2, 4);
$pole2 = array("a", "b", "farba" => "zelena", "tvar" => "trapezoid", 4);
$vysledok = array_merge($pole1, $pole2);
print_r($vysledok);

/* $vysledok je:
Array
(
    [farba] => zelena
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [tvar] => trapezoid
    [4] => 4
)
*/

?>


<?php
$pole1 = array();
$pole2 = array(1 => "data");
$vysledok = array_merge($pole1, $pole2);
/* Nezabudnite, že číselné kľúče sa prečíslujú!

Array
(
    [0] => data
)
*/

?>


Ak chcete úplne zachovať polia a chcete ich k sebe pripojiť, použite operátor +:
<?php
$pole1 = array();
$pole2 = array(1 => "data");
$result = $pole1 + $pole2;

/*Číselný klúč sa zachováva, a teda asociácia zostáva.

Array
(
    [1] => data
)
*/

?>


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

unset($array_one[2]);

$result_one = array_merge($array_one);
$result_two = array_merge($array_two);

print_r($result_one);
print_r($result_two);

/* Výstup je:
Array
(
    [0] => jay
    [1] => bob
    [2] => dante
)
Array
(
    [jay] => jason
    [randal] => dante
)
*/

?>


Poznámka: Zdieľané kľúče sa prepisujú na základe 'prvý-príde prvý slúži'.

Pozri aj

array_merge_recursive, array_combine, operátory poľa v PHP