返回介绍

array_replace_recursive()

发布于 2017-09-10 21:30:13 字数 2176 浏览 1279 评论 0 收藏 0

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

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


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.


参数

$base

(array) (Optional) Array with keys needing to be replaced.

Default value: array()

$replacements

(array) (Optional) Array with the replaced keys.

Default value: array()


返回值

(array)


源代码

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

更新日志

Versiondescription
4.5.3Introduced.

User Contributed Notes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文