array_replace_recursive( array $base = array(), array $replacements = array() )
PHP-agnostic version of {@link array_replace_recursive()}.
Description Description
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.
See also See also
Parameters Parameters
- $base
-
(array) (Optional) Array with keys needing to be replaced.
Default value: array()
- $replacements
-
(array) (Optional) Array with the replaced keys.
Default value: array()
Return Return
(array)
Source Source
File: wp-includes/compat.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; }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.5.3 | Introduced. |