交替合併平面數組
給定兩個大小相等的平面數組,我們努力交替合併它們,保留每個數組中元素的順序大批。所需的輸出類似於:
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中文網其他相關文章!