与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/