一、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);