最近项目中遇到了针对上万条数据(多维数组处理)分析的情况,最终发现array_merge()函数耗费了大量的时间。
foreach ($items as $item) {
$checked = $item->checked;
if (!empty($checked)) {
$final = array_merge($final, $checked);
}
}
最终我结合实际情况用基础方法来解决了array_merge()函数耗时的问题。性能得到了极大的提升。
foreach ($items as $item) {
$checked = $item ->checked;
if (!empty($checked)) {
imitateMerge($final, $checked);
}
}
imitateMerge()为自定义的函数,如下:
function imitateMerge(&$array1, &$array2) {
foreach($array2 as $a2) {
$array1[] = $a2;
}
}
需要补充说明的是,array_merge()的参数前后顺序不一样,对速度的影响也是极大的。
总结:
尤其要合并的数组数量多,结构复杂时array_merge()的资源使用量会曲线增长。当然本文中的自定义函数imitateMerge()也不是能完全代替array_merge()函数的。要结合实际情况做出调整。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。