Heim >Backend-Entwicklung >PHP-Tutorial >Wie können wir zwei flache Arrays effizient abwechselnd zusammenführen?

Wie können wir zwei flache Arrays effizient abwechselnd zusammenführen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-19 16:47:16177Durchsuche

How Can We Efficiently Merge Two Flat Arrays Alternately?

Abwechselndes Zusammenführen flacher Arrays

Bei zwei gleich großen flachen Arrays streben wir danach, sie abwechselnd zusammenzuführen und dabei die Reihenfolge der Elemente in jedem beizubehalten Array. Die gewünschte Ausgabe ähnelt:

array(0, 3, 1, 4, 2, 5);

Während ein Brute-Force-Ansatz wie der folgende die Aufgabe erfüllt:

for (var $i = 0; $i < count($a1); $i++) {
    newArray[] = $a1[$i];
    newArray[] = $b1[$i];
}

Effizienz wird entscheidend, wenn dieser Vorgang tausende Male ausgeführt wird.

Eine native Lösung

Die vorgeschlagene native Lösung beinhaltet eine maßgeschneiderte Schleife, die über iteriert Arrays und hängt ihre Elemente abwechselnd an ein neues Array an:

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $b1[$i];
}

Diese Technik erweist sich als effizienter, insbesondere wenn sie mehrmals wiederholt wird, wie der Benchmark-Test unten zeigt:

$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

Daher , die Vorabberechnung der Array-Größe führt zu einer Leistungssteigerung von ca. 25 % und ist somit die optimale Lösung für Großbetriebe.

Das obige ist der detaillierte Inhalt vonWie können wir zwei flache Arrays effizient abwechselnd zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn