PHP

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 →