首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7)

array_replace_recursive - 递归地将传入数组中的元素替换为第一个数组

描述

代码语言:javascript
复制
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()示例

代码语言:javascript
复制
<?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);
?>

上面的例子将输出:

代码语言:javascript
复制
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

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

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

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

)

示例#2 array_replace_recursive()和递归行为

代码语言:javascript
复制
<?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);

?>

上面的例子将输出:

代码语言:javascript
复制
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

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

    [others] => litchis
)

扩展内容

  • array_replace() - 将传入数组中的元素替换为第一个数组
  • array_merge_recursive() - 递归合并两个或更多数组

← array_reduce

array_replace →

扫码关注腾讯云开发者

领取腾讯云代金券