首页后端开发JAVAPHP 深度合并多维数组 wpjam_array_merge

PHP 深度合并多维数组 wpjam_array_merge

时间2023-04-21 22:27:01发布访客分类JAVA浏览1154
导读:我们知道 array_merge_recursive( 不会进行键名覆盖,而是将多个相同键名的值递归合并成一个数组。$ar1 = array("color" => array("red", "green" , "aa" ; $ar2...

我们知道 array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归合并成一个数组。

$ar1 = array("color" =>
     array("red", "green"), "aa");
    
$ar2 = array("color" =>
     array( "green", "blue"), "bb");
    
$result = array_merge_recursive($ar1, $ar2);
    
print_r($result);
    

输出结果:

[
    'color' =>
     [
        (int) 0 =>
     'red',
        (int) 1 =>
     'green',
        (int) 2 =>
     'green',
        (int) 3 =>
     'blue'
    ],
    (int) 0 =>
     'aa',
    (int) 1 =>
 'bb'
]

其实我们希望子数组里面的相同的值覆盖,据此我们写了一个 wpjam_array_merge 函数,用来深度合并多维数组:

function wpjam_array_merge($arr1, $arr2){
    
	$merged	= $arr1;
    

	foreach($arr2 as $key =>
     &
$value){
    
		if(is_array($value) &
    &
     isset($merged[$key]) &
    &
 is_array($merged[$key])){
    
			$merged[$key]	= wpjam_array_merge($merged[$key], $value);

		}
elseif(is_numeric($key)){

			if(!in_array($value, $merged)) {
    
				$merged[]	= $value;

			}

		}
else{
    
			$merged[$key]	= $value;

		}

	}
    

	return $merged;

}
    

得到的结果是:

[
    'color' =>
     [
        (int) 0 =>
     'red',
        (int) 1 =>
     'green',
        (int) 3 =>
     'blue'
    ],
    (int) 0 =>
     'aa',
    (int) 1 =>
     'bb'
]

WPJAM Basic 已经集成了该函数,只要激活即可使用。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

phpmerge递归函数数组

若转载请注明出处: PHP 深度合并多维数组 wpjam_array_merge
本文地址: https://pptw.com/jishu/4764.html
PHP 的 Git 源码库遭到恶意代码提交 WordPress 技巧:如何限制或取消自动清空回收站功能

游客 回复需填写必要信息