交替合并平面数组
给定两个大小相等的平面数组,我们努力交替合并它们,保留每个数组中元素的顺序大批。所需的输出类似于:
array(0, 3, 1, 4, 2, 5);
虽然像下面这样的强力方法可以完成任务:
for (var $i = 0; $i < count($a1); $i++) { newArray[] = $a1[$i]; newArray[] = $b1[$i]; }
执行此操作数千次时,效率变得至关重要。
原生解决方案
建议的原生解决方案涉及定制循环,迭代数组并将其元素交替附加到新数组:
$count = count($a1); for ($i = 0; $i < $count; $i++) { $newArray[] = $a1[$i]; $newArray[] = $b1[$i]; }
这种技术被证明更有效,特别是在重复多次时,如下面的基准测试所示:
$a1 = array(0,1,2); $a2 = array(3,4,5); $start = microtime(TRUE); for($t = 0; $t < 100000; $t++) { $newArray = array(); $count = count($a1); for ($i = 0; $i < $count; $i++) { $newArray[] = $a1[$i]; $newArray[] = $b1[$i]; } } echo round(microtime(TRUE) - $start, 2); # 0.6 $a1 = array(0,1,2); $a2 = array(3,4,5); $start = microtime(TRUE); for($t = 0; $t < 100000; $t++) { $newArray = array(); for ($i = 0; $i < count($a1); $i++) { $newArray[] = $a1[$i]; $newArray[] = $a2[$i]; } } echo round(microtime(TRUE) - $start, 2); # 0.85
因此,预先计算数组大小可提供大约 25% 的性能提升,使其成为大规模操作的最佳解决方案。
以上是我们如何有效地交替合并两个平面数组?的详细内容。更多信息请关注PHP中文网其他相关文章!