(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — 使用傳遞的數組遞歸替換第一個(gè)數組的元素
$array
, array ...$replacements
): array
array_replace_recursive() 使用后面數組元素的值替換數組 array
的值。
如果一個(gè)鍵存在于第一個(gè)數組同時(shí)也存在于第二個(gè)數組,它的值將被第二個(gè)數組中的值替換。
如果一個(gè)鍵存在于第二個(gè)數組,但是不存在于第一個(gè)數組,則會(huì )在第一個(gè)數組中創(chuàng )建這個(gè)元素。
如果一個(gè)鍵僅存在于第一個(gè)數組,它將保持不變。
如果傳遞了多個(gè)替換數組,它們將被按順序依次處理,后面的數組將覆蓋之前的值。
array_replace_recursive() 是遞歸的:它將遍歷數組并將相同的處理應用到數組的內部值。
如果第一個(gè)數組中的值是標量,它的值將被第二個(gè)數組中的值替換,它可能是一個(gè)標量或者數組。如果第一個(gè)數組和第二個(gè)數組中的值都是數組, array_replace_recursive() 函數將遞歸地替換它們各自的值。
array
替換該數組的值。
replacements
包含要提取元素的數組。
返回一個(gè)數組。如果發(fā)生錯誤,將返回 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);
?>
以上例程會(huì )輸出:
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);
?>
以上例程會(huì )輸出:
Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) [others] => litchis )