PHP 数组合并array_merge 、 + 号 和 array_merge_recursive

一、array_merge 和 + 两种方式的数组合并区别

1、索引数组

    array_merge  :  会合并两个索引数组全部的值,并重新生成索引

             +         :  用 + 合并索引数组,保留前一个数组的值,没有实际的意义

//索引数组  
        $test = ['apple','pine','water'];
	$test1 = ['apple1','pine1','lemon'];

	$mergeArr = array_merge($test,$test1); //  合并两个数组的全部元素
	$addArr = $test + $test1;  //只保留前面一个数组元素,没有合并的意义
	
	echo '<pre索引数组>merge合并<br/>';
	var_dump($mergeArr);
	echo '<pre>索引数组+合并<br/>';
	var_dump($addArr);
	 

                                                      

2、关联数组

//关联数组
	$test = ['apple'=>'apple','pine'=>'pine','water'=>'water'];
	$test1 = ['apple'=>'apple1','pine'=>'pine1','lemon'=>'lemon'];
	
	$mergeArr = array_merge($test,$test1); //  merge合并时键出现重复,后面元素覆盖了前面元素
	$addArr = $test + $test1;    // + 合并时键出现重复,只保留前面的元素
	
	echo '<pre>merge合并关联数组<br/>';
	var_dump($mergeArr);
	echo '<pre>+合并关联数组<br/>';
	var_dump($addArr);  

                                                            

二、 array_merge_recursive  合并数组

  //索引数组 
        $test = ['apple','pine','water'];
	$test1 = ['apple1','pine1','lemon'];
	
	$mergeArr = array_merge_recursive($test,$test1); 
	echo '<pre>merge_recursive合并索引数组<br/>';
	var_dump($mergeArr);

                                                         

//关联数组
	$test = ['apple'=>'apple','pine'=>'pine','water'=>'water'];
	$test1 = ['apple'=>'apple1','pine'=>'pine1','lemon'=>'lemon'];
	
	$mergeArr = array_merge_recursive($test,$test1);  
	
	echo '<pre>merge_recursive合并关联数组<br/>';
	var_dump($mergeArr); 

                                                     

猜你喜欢

转载自blog.csdn.net/bianb123/article/details/82702609