Heim >Backend-Entwicklung >PHP-Tutorial >Wie können wir zwei flache Arrays effizient abwechselnd zusammenführen?
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!