Рекурсивно заменяет элементы первого массива элементами других массивов

# array_replace_recursive

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

array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами других массивов

### Описание

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

Функция array_replace_recursive() заменяет значения массива `array` на значения с тем же ключом из каждого следующего массива. Значение первого массива заменяется значением из второго, если второй массив содержит ключ из первого. Функция создаст ключ в первом массиве, если второй массив содержит ключ, которого нет в первом. Ключ в первом массиве не изменяется, если ключ содержится только в первом массиве. Массивы обрабатываются по порядку, очередные значения перезаписывают предыдущие.

Функция array_replace_recursive() рекурсивно углубляется в массивы и применяет к каждому внутреннему значению один и тот же процесс.

Скалярное значение в первом массиве заменяется скалярным значением или массивом из второго. Функция array_replace_recursive() рекурсивно заменит значения в значении-массиве первого массива, если значения обоих массивов содержат массив.

### Список параметров

`array`

  Массив, элементы которого требуется заменить.

`replacements`

  Массивы, из которых функция возьмёт элементы для замены.

### Возвращаемые значения

Функция возвращает значение с типом array.

### Примеры

Пример #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() - Рекурсивно сливает один или несколько массивов

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open