WordPress at a glance
function is not described

array_replace_recursive() WP 4.5.3

PHP-agnostic version of {@link array_replace_recursive()}.

The array_replace_recursive() function is a PHP 5.3 function. WordPress currently supports down to PHP 5.2, so this method is a workaround for PHP 5.2.

Note: array_replace_recursive() supports infinite arguments, but for our use- case, we only need to support two arguments.

Subject to removal once WordPress makes PHP 5.3.0 the minimum requirement.

No Hooks.

Return

Array.

Usage

array_replace_recursive( $base, $replacements );
$base(array)
Array with keys needing to be replaced.
Default: array()
$replacements(array)
Array with the replaced keys.
Default: array()

Code of array replace recursive: wp-includes/compat.php VER 5.0.3

<?php
function array_replace_recursive( $base = array(), $replacements = array() ) {
	foreach ( array_slice( func_get_args(), 1 ) as $replacements ) {
		$bref_stack = array( &$base );
		$head_stack = array( $replacements );

		do {
			end( $bref_stack );

			$bref = &$bref_stack[ key( $bref_stack ) ];
			$head = array_pop( $head_stack );

			unset( $bref_stack[ key( $bref_stack ) ] );

			foreach ( array_keys( $head ) as $key ) {
				if ( isset( $key, $bref ) &&
				     isset( $bref[ $key ] ) && is_array( $bref[ $key ] ) &&
				     isset( $head[ $key ] ) && is_array( $head[ $key ] )
				) {
					$bref_stack[] = &$bref[ $key ];
					$head_stack[] = $head[ $key ];
				} else {
					$bref[ $key ] = $head[ $key ];
				}
			}
		} while ( count( $head_stack ) );
	}

	return $base;
}