2017-03-23 1 views
0

Hallo Ich habe eine schwer zu verstehen den Unterschied zwischen diesen beiden Funktionen in PHP array_replace und array_replace_recursive.Different zwischen array_replace und array_replace_recursive

array array_replace_recursive (array $array1 , array $array2 [, array $... ]) 

und

array array_replace (array $array1 , array $array2 [, array $... ]) 

und Dank im Voraus

+1

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

+0

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

Antwort

3

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.

Verwandte Themen