Функция array_replace_recursive() заменяет значения массива
array на значения
с тем же ключом из каждого следующего массива.
Значение первого массива заменяется значением из второго,
если второй массив содержит ключ из первого.
Функция создаст ключ в первом массиве,
если второй массив содержит ключ, которого нет в первом.
Ключ в первом массиве не изменяется, если ключ содержится только в первом массиве.
Массивы обрабатываются по порядку, очередные значения перезаписывают
предыдущие.
Функция array_replace_recursive() рекурсивно
углубляется в массивы и применяет к каждому внутреннему значению один и тот
же процесс.
Скалярное значение в первом массиве
заменяется скалярным значением или массивом из второго.
Функция array_replace_recursive() рекурсивно заменит
значения в значении-массиве первого массива,
если значения обоих массивов содержат массив.
Note that function will NOT replace a sub-tree from you $array1 if its value in $array2 is an empty array. Even tho the key for this dimension is technically 'set'.
(I suppose it treats it as just another recursive level to dive in, finding no key to compare, backtracking while leaving this sub-tree alone)