array_replace和array_replace_recursive之间有所不同

时间:2017-03-23 02:25:18

标签: php arrays

您好我很难理解php array_replacearray_replace_recursive中这两个函数之间的区别。

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

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

并提前致谢

1 个答案:

答案 0 :(得分:4)

当数组中有数组时会出现差异。从here开始,让我们创建两个数组:

$base = array('citrus' => array( "orange") , 
              'berries' => array("blackberry", "raspberry"), 
             );
$replacements = array('citrus' => array('pineapple'), 
                      'berries' => array('blueberry')
                );

如果我们这样做

$basket = array_replace($base, $replacements);

我们会得到

Array
(
[citrus] => Array
    (
        [0] => pineapple
    )

[berries] => Array
    (
        [0] => blueberry
    )

)

数组“blueberry”已经取代了数组“blackberry”,“raspberry”。如果我们做了

$basket = array_replace_recursive($base, $replacements);

我们会得到

Array
(
[citrus] => Array
    (
        [0] => pineapple
    )

[berries] => Array
    (
        [0] => blueberry
        [1] => raspberry
    )

)

现在数组“blueberry”中的第一个元素已经替换了数组“blackberry”,“raspberry”中的第一个元素。所以它是数组替换中的数组替换,或者是递归替换。