array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace_recursive使用傳遞的數(shù)組遞歸替換第一個數(shù)組的元素

說明

array_replace_recursive(array $array, array ...$replacements): array

array_replace_recursive() 使用后面數(shù)組元素的值替換數(shù)組 array 的值。 如果一個鍵存在于第一個數(shù)組同時也存在于第二個數(shù)組,它的值將被第二個數(shù)組中的值替換。 如果一個鍵存在于第二個數(shù)組,但是不存在于第一個數(shù)組,則會在第一個數(shù)組中創(chuàng)建這個元素。 如果一個鍵僅存在于第一個數(shù)組,它將保持不變。 如果傳遞了多個替換數(shù)組,它們將被按順序依次處理,后面的數(shù)組將覆蓋之前的值。

array_replace_recursive() 是遞歸的:它將遍歷數(shù)組并將相同的處理應(yīng)用到數(shù)組的內(nèi)部值。

如果第一個數(shù)組中的值是標量,它的值將被第二個數(shù)組中的值替換,它可能是一個標量或者數(shù)組。如果第一個數(shù)組和第二個數(shù)組中的值都是數(shù)組, array_replace_recursive() 函數(shù)將遞歸地替換它們各自的值。

參數(shù)

array

替換該數(shù)組的值。

replacements

包含要提取元素的數(shù)組。

返回值

返回一個數(shù)組。如果發(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);
?>

以上例程會輸出:

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

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

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

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

)

示例 #2 array_replace_recursive() 及其遞歸表現(xiàn)

<?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
)

參見