多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
众所周知合并两个数组可以使用array_merge(),这是php提供的一个函数。另外还可以通过 array 的方式来合并数组,这两种直接有什么区别,哪一个的效率更高呢? array_merge() 格式: array array_merge ( array … ] ) 注意(区别): 如果合并的数组使用关联索引,数组中有相同的键名,则该键名后面的值将覆盖前一个值。 如果合并的数组使用数字索引,数组中有相同的键名, 后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。 $array + $array 注意(区别): 如果合并的数组中有相同的键名,最先出现的值作为最终结果返回(和array_merge关联索引的情况正好相反) 循环10万次的用时 ``` `$arr1 = [0,1,2,3]; $arr2 = [‘0‘=>0,1,2,‘5‘=>3]; var_dump(array_merge($arr1,$arr2)); echo ‘ ‘; var_dump($arr1+$arr2); echo ‘测试array_merge()和+的效率‘; echo ‘ ‘; $execTime = 100000; $time = time(); for ($i = 0; $i < $execTime; $i++) { array_merge($arr1,$arr2); } echo ‘用时:‘ .(time() - $time); echo ‘ ‘; $time = time(); for ($i = 0; $i < $execTime; $i++) { $arr1+$arr2; } echo ‘用时:‘ .(time() - $time); echo ‘ ‘;` ``` 输出结果: array_merge() : 6s $array + $array : 0s 总结 array_merge() 和 + 都可以起到合并数组的作用,但是它们处理相同键的方式不同,array_merge() 返回的是后面的键的值, + 返回的是第一个键的值。+ 的效率要高于array_merge();