Der Unterschied ergibt sich, wenn Sie Arrays in Arrays. Unter von here, lassen Sie uns zwei Arrays erstellen:
$base = array('citrus' => array("orange") ,
'berries' => array("blackberry", "raspberry"),
);
$replacements = array('citrus' => array('pineapple'),
'berries' => array('blueberry')
);
Wenn wir
$basket = array_replace($base, $replacements);
tun wir
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
, wo das Array "Blaubeere" das Array ersetzt hat "Blackberry", "Himbeere". Wenn wir stattdessen
$basket = array_replace_recursive($base, $replacements);
tun wir bekommen
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
nun das erste Element in dem Array "Blaubeere" ersetzt hat das erste Element in dem Array "Blackberry", "Himbeere". Es ist also eine Array-Ersetzung innerhalb einer Array-Ersetzung oder eine rekursive Ersetzung.
Wissen Sie, was das Wort * recursive * bedeutet? Es ist im Grunde, dass, wenn Sie mehrdimensionale Arrays haben, es die Funktion auch auf den Sub-Arrays statt nur das Eltern-Array durchgeführt wird. – Qirel
Schauen Sie sich * Beispiel # 1 * unter http://php.net/manual/en/function.array-replace-recursive.php an, da es den Unterschied in den Ergebnissen der 2 Funktionen zeigt – Sean