与PHP无关的{@link array_replace_recursive()}版本。

原型

array_replace_recursive( array $base = array(), array $replacements = array() )

描述

array_replace_recursive()函数是PHP 5.3函数。 WordPress目前支持PHP 5.2,因此这种方法是PHP 5.2的解决方法。

参考:

参数

$base (array) (Optional) 需要更换密钥的数组。

$replacements (array) (Optional) 带有替换键的数组。

返回值

(array)  

源文件

路径:wp-includes/compat.php

<?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;
	}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/array_replace_recursive/