Leistungsvergleich von Array-Transformationsmethoden
Um ein Array in ein anderes umzuwandeln, verwenden wir häufig Techniken wie foreach, array_map mit Lambda-/Closure-Funktionen oder array_map mit statischen Funktionen. In diesem Artikel werden die Leistungsunterschiede zwischen diesen Ansätzen bewertet.
Foreach
Foreach ist eine klassische Methode, die ein Array durchläuft und dabei jedes Element einzeln transformiert. Aus den Ergebnissen wird ein neues Array erstellt:
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
Array_map mit Lambda
Array_map mit einer Lambda-Funktion kombiniert die Elemente eines Arrays mithilfe eines bereitgestellten Rückrufs. In diesem Fall multipliziert eine Lambda-Funktion jedes Element mit 10:
return array_map(function($number) { return $number * 10; }, $numbers);
Array_map mit statischer Funktion
Array_map kann auch eine statische Funktion als Rückruf verwenden. Hier multipliziert eine statische Funktion namens „tenTimes“ jedes Element:
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
Leistungsanalyse
Benchmarks mit PHP 5.6, 7 und HHVM zeigen, dass die array_map-Methode ist sowohl mit Lambda- als auch mit statischen Funktionen durchweg schneller als foreach. Dies liegt daran, dass array_map die internen Funktionen verwendet, die auf Geschwindigkeit optimiert sind.
Allerdings bei der Verwendung von Abschlüssen mit array_map und der Einführung externer Variablen mit „use“ wird die Auswirkung auf die Leistung erheblich. Foreach und array_map mit benannten Funktionen funktionieren in diesem Szenario ähnlich.
Fazit
Wenn Effizienz an erster Stelle steht, sollte array_map über foreach verwendet werden. Wenn Sie Abschlüsse mit externen Variablen verwenden, sollten Sie erwägen, den Code zu optimieren oder stattdessen array_map mit benannten Funktionen zu verwenden. Die Wahl hängt letztendlich von spezifischen Anforderungen und Leistungsüberlegungen ab.
Das obige ist der detaillierte Inhalt vonWelche Array-Transformationsmethode in PHP bietet die beste Leistung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!