Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich zwei flach indizierte Arrays effizient abwechselnd zusammenführen?

Wie kann ich zwei flach indizierte Arrays effizient abwechselnd zusammenführen?

DDD
Freigeben: 2024-12-03 10:40:10
Original
690 Leute haben es durchsucht

How Can I Efficiently Merge Two Flat Indexed Arrays Alternately?

Abwechselndes Zusammenführen flacher indizierter Arrays

Abwechselndes Zusammenführen zweier Arrays, wobei Werte einzeln in das Ergebnis eingefügt werden, anstatt sie zu verketten, ist eine häufige Anforderung bei der Datenverarbeitung und -manipulation. In diesem Fall haben wir zwei flache indizierte Arrays, $a1 und $a2, und wir möchten sie in ein neues Array, $newArray, zusammenführen, sodass die Werte wie folgt verschachtelt sind: [0, 3, 1, 4, 2 , 5].

Obwohl es möglich ist, dies wie vorgeschlagen mit einer manuellen Schleife zu erreichen, gibt es einen effizienteren nativen Ansatz, der Leistungsvorteile bietet. Der folgende Code veranschaulicht den vorberechneten Ansatz:

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $a2[$i];
}
Nach dem Login kopieren

In diesem Code ermitteln wir zunächst die Anzahl der Elemente in $a1 (vorausgesetzt, $a1 und $a2 haben die gleiche Größe). Dann verwenden wir eine Schleife, um die Elemente zu durchlaufen und sie abwechselnd dem $newArray hinzuzufügen.

Leistungsbenchmarking, wie unten gezeigt, bestätigt die Effizienz dieses Ansatzes:

$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[] = $a2[$i];
    }
}
echo round(microtime(TRUE) - $start, 2); # 0.6
Nach dem Login kopieren

Im Vergleich Im Vergleich zum Ansatz, bei dem die Array-Größe in jeder Iteration neu berechnet wird, bietet dieser vorberechnete Ansatz eine erhebliche Leistungsverbesserung:

$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
Nach dem Login kopieren

Beim Benchmarking Bietet eine Momentaufnahme der Leistung. Es ist jedoch wichtig zu beachten, dass die spezifischen Leistungsmerkmale je nach den spezifischen Daten und der Umgebung variieren können. Nichtsdestotrotz bietet dieser vorberechnete Ansatz eine solide Grundlage für die effiziente abwechselnde Zusammenführung flach indizierter Arrays.

Das obige ist der detaillierte Inhalt vonWie kann ich zwei flach indizierte Arrays effizient abwechselnd zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage