Рекурсивно замените значения первого массива ($a1) значениями второго массива ($a2):
<?php$a1=array("a"=>array("красный"),"b"=>array("зеленый","синий"),);$a2=array("a"=>array( "желтый"),"b"=>array("черный"));print_r(array_replace_recursive($a1,$a2));?>Функция array_replace_recursive() рекурсивно заменяет значения первого массива значениями последующих массивов.
Совет: Вы можете передать в функцию массив или несколько массивов.
Если ключ существует в первом массиве array1, а также существует во втором массиве array2, значение в первом массиве array1 будет заменено значением во втором массиве array2. Если ключ существует только в первом массиве array1, он останется неизменным. Если ключ существует во втором массиве array2, но отсутствует в первом массиве array1, элемент будет создан в первом массиве array1. Если передано несколько массивов замены, они будут обработаны по порядку, а значения последующих массивов перезапишут значения предыдущих массивов.
Примечание. Если вы не укажете ключ для каждого массива, эта функция будет вести себя идентично функции array_replace().
array_replace_recursive( массив1,массив2,массив3... )
параметр | описывать |
---|---|
массив1 | Необходимый. Укажите массив. |
массив2 | Необязательный. Указывает массив для замены значения array1 . |
массив3,... | Необязательный. Укажите несколько массивов для замены значений array1 и array2,.... Значения в следующем массиве перезапишут значения в предыдущем массиве. |
Возвращаемое значение: | Возвращает замененный массив или NULL в случае возникновения ошибки. |
---|---|
PHP-версия: | 5.3.0+ |
Несколько массивов:
<?php$a1=array("a"=>array("красный"),"b"=>array("зеленый","синий"));$a2=array("a"=>array(" желтый"),"b"=>array("черный k"));$a3=array("a"=>array("оранжевый"),"b"=>array("бордовый"));print_r(array_replace_recursive($a1,$a2,$a3)); ?>Различия между array_replace() и array_replace_recursive():
<?php$a1=array("a"=>array("красный"),"b"=>array("зеленый","синий"),);$a2=array("a"=>array( "желтый"),"b"=>array("черный" ));$result=array_replace_recursive($a1,$a2);print_r($result);$result=array_replace($a1,$a2);print_r($result);?>