PHP - array_replace
Třída
Metoda - array_replace
(PHP 5 >= 5.3.0, PHP 7)
Funkce nahradí hodnoty v prvním poli hodnotami z následujících polí.
- Pokud se klíč z prvního pole (pole 1) nachází také v následujícím poli (pole 2), hodnota v prvním poli bude nahrazená hodnotou z pole 2.
- V případě, že klíč existuje pouze v prvním poli, hodnota zůstane ponechána tak jak je.
- Pokud se klíč nachází v poli 2, ale v hlavním poli (pole 1) se nenachází, bude v něm vytvořen.
Poznámka: funkce není rekurzivní, v případě potřeby
nahrazování ve vícerozměrných polích použijeme funkci
array_replace_recursive()
.
Procedurální
- function array_replace (array $array1, array $array2, array $...) : array
Parametry
Název | Datový typ | Výchozí hodnota | Popis |
---|---|---|---|
$array1 | array | Pole, jehož hodnoty budou nahrazené. | |
$array2 | array | Pole, jehož hodnoty se použijí na nahrazení hodnot v prvním poli. Nahrazené budou pouze hodnoty se stejným klíčem. Pokud se klíč v prvním poli nenachází, bude v něm vytvořen. | |
$... | array | Můžeme předat více polí, pro které platí to samé jako pro druhý parametr. Hodnoty z pozdějších polí nahradí hodnoty z předcházejících polí. |
Návratové hodnoty
Vrací: array
Vrací pole s nahrazenými hodnotami. Při výskytu chyby vrací NULL.
Příklady
Ukázka 1: Máme dvě asociativní pole s různými hodnotami.
<?php
$pole1 = array("firstName" => "John", "lastName" => "Rambo", "age" => 30);
$pole2 = array("firstName" => "Chuck", "lastName" => "Norris", "bestMovie" => "Lone Wolf McQuade");
print_r(array_replace($pole1, $pole2));
echo "<br>";
// Přidáme třetí pole.
$pole3 = array("firstName" => "Rocky", "lastName" => "Balboa", "age" => 40, "bestMovie" => "Rocky 1");
print_r(array_replace($pole1, $pole2, $pole3));
Ukázka 2: Máme číselné (indexované) pole s různými hodnotami.
<?php
$usaAuta = array("Ford", "Cadillac");
$nemeckeAuta = array("BMW", "Mercedes", "Audi", "VW");
$japonskeAuta = array("Toyota", "Mazda", "Honda", "Subaru");
print_r(array_replace($usaAuta, $nemeckeAuta, $japonskeAuta));
echo "<br>";
// Zadáme některé číselné klíče a výsledek se změní.
$usaAuta = array("Ford", 8 => "Cadillac");
$nemeckeAuta = array("BMW", "Mercedes", 5 => "Audi", "VW");
$japonskeAuta = array("Toyota", "Mazda", "Honda", "Subaru");
print_r(array_replace($usaAuta, $nemeckeAuta, $japonskeAuta));
Související manuály
- function array_merge (array $array1, array $...) : array