array_replace_recursive
array_replace_recursive
(PHP 5 >= 5.3.0, PHP 7)
array_replace_recursive - 递归地将传入数组中的元素替换为第一个数组
描述
array array_replace_recursive ( array $array1 , array $array2 [, array $... ] )
array_replace_recursive()
用array1
以下所有数组中的值替换相同的值。如果第一个数组中的键存在于第二个数组中,则其值将被第二个数组中的值替换。如果该键存在于第二个数组中,而不是第一个,它将在第一个数组中创建。如果一个键只存在于第一个数组中,它将保持原样。如果有几个数组通过替换,它们将按顺序处理,后面的数组将覆盖以前的值。
array_replace_recursive()
是递归的:它将递归到数组中,并将相同的过程应用于内部值。
当array1中的值是标量时,它将被替换为array2中的值,可能它是标量或数组。 当array1和array2中的值都是数组时,array_replace_recursive()将递归地替换它们各自的值。
参数
array1
元素被替换的数组。
array2
将从中提取元素的数组。
...
这是可选的。更多的数组将从中提取元素。
返回值
返回数组,或者发生错误时返回NULL
例子
示例#1 array_replace_recursive()示例
<?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
?>
上面的例子将输出:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
示例#2 array_replace_recursive()和递归行为
<?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
?>
上面的例子将输出:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
[others] => litchis
)
扩展内容
- array_replace() - 将传入数组中的元素替换为第一个数组
- array_merge_recursive() - 递归合并两个或更多数组
← array_reduce
array_replace →