首頁 >後端開發 >php教程 >我們如何有效地交替合併兩個平面數組?

我們如何有效地交替合併兩個平面數組?

Barbara Streisand
Barbara Streisand原創
2024-12-19 16:47:16173瀏覽

How Can We Efficiently Merge Two Flat Arrays Alternately?

交替合併平面數組

給定兩個大小相等的平面數組,我們努力交替合併它們,保留每個數組中元素的順序大批。所需的輸出類似於:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn