php 通过array_merge()和array+array合并数组的区别和效率比较
众所周知合并两个数组可以使用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 '<br/>';
var_dump($arr1+$arr2);
echo '测试array_merge()和+的效率';
echo '<br/>';
$execTime = 100000;
$time = time();
for ($i = 0; $i < $execTime; $i++) {
array_merge($arr1,$arr2);
}
echo '用时:' .(time() - $time);
echo '<br/>';
$time = time();
for ($i = 0; $i < $execTime; $i++) {
$arr1+$arr2;
}
echo '用时:' .(time() - $time);
echo '<br/>';
输出结果:
array_merge() : 6s
$array + $array : 0s
总结
array_merge() 和 + 都可以起到合并数组的作用,但是它们处理相同键的方式不同,array_merge() 返回的是后面的键的值, + 返回的是第一个键的值。+ 的效率要高于array_merge();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律