array_replace_recursive
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — Ersetzt rekursiv Elemente des ersten Arrays durch Elemente der übergebenen Arrays
Beschreibung
function array_replace_recursive(
array $array,
array ...$replacements):
array
Die Funktion array_replace_recursive() ist rekursiv: sie
rekursiert in Arrays und wendet den gleichen Prozess auf den inneren Wert an.
Wenn der Wert im ersten Array ein Skalar ist, wird er durch den Wert im
zweiten Array ersetzt, egal ob es sich um einen Skalar oder ein Array
handelt. Wenn sowohl der Wert im ersten Array als auch der Wert im zweiten
Array ein Array ist, ersetzt array_replace_recursive()
den jeweiligen Wert rekursiv.
Parameter-Liste
array
-
Das Array, dessen Elemente ersetzt werden.
replacements
-
Arrays, aus denen Elemente ausgelesen werden sollen.
Rückgabewerte
Gibt ein Array zurück.
Beispiele
Beispiel #1 array_replace_recursive()-Beispiel
<?php
$base = array('citrus' => array("orange"), 'berries' => array("blackberry", "raspberry"));
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
$basket = array_replace_recursive($base, $replacements);
print_r($basket);
$basket = array_replace($base, $replacements);
print_r($basket);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
Beispiel #2 array_replace_recursive() und rekursives Verhalten
<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');
$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
[others] => litchis
)