Функция PHP array_replace_recursive()
Пример
Рекурсивно замените значения первого массива значениями из второго массива:
<?php
$a1=array("a"=>array("red"),"b"=>array("green","blue"),);
$a2=array("a"=>array("yellow"),"b"=>array("black"));
print_r(array_replace_recursive($a1,$a2));
?>
Определение и использование
Функция array_replace_recursive() рекурсивно заменяет значения первого массива значениями из следующих массивов.
Совет: Вы можете назначить функции один массив или столько, сколько захотите.
Если ключ из массива1 существует в массиве2, значения из массива1 будут заменены значениями из массива2. Если ключ существует только в массиве1, он останется как есть. Если ключ существует в массиве2, а не в массиве1, он будет создан в массиве1. Если используется несколько массивов, значения из более поздних массивов перезапишут предыдущие.
Примечание. Если вы не укажете ключ для каждого массива, эта функция будет вести себя точно так же, как функция array_replace() .
Синтаксис
array_replace_recursive(array1, array2, array3, ...)
Значения параметров
Parameter | Description |
---|---|
array1 | Required. Specifies an array |
array2 | Optional. Specifies an array which will replace the values of array1 |
array3,... | Optional. Specifies more arrays to replace the values of array1 and array2, etc. Values from later arrays will overwrite the previous ones. |
Технические детали
Возвращаемое значение: | Возвращает замененный массив или NULL в случае ошибки |
---|---|
Версия PHP: | 5.3.0+ |
Дополнительные примеры
Пример
Несколько массивов:
<?php
$a1=array("a"=>array("red"),"b"=>array("green","blue"));
$a2=array("a"=>array("yellow"),"b"=>array("black"));
$a3=array("a"=>array("orange"),"b"=>array("burgundy"));
print_r(array_replace_recursive($a1,$a2,$a3));
?>
Пример
Различия между array_replace() и array_replace_recursive():
<?php
$a1=array("a"=>array("red"),"b"=>array("green","blue"),);
$a2=array("a"=>array("yellow"),"b"=>array("black"));
$result=array_replace_recursive($a1,$a2);
print_r($result);
$result=array_replace($a1,$a2);
print_r($result);
?>
❮ Справочник по массивам PHP