Wydajność foreach, array_map z lambda i array_map z funkcją statyczną
Jaka jest różnica w wydajności (jeśli taka istnieje) między tymi trzema podejściami, obie używane do przekształcenia tablicy w inną tablicę?
Za pomocąforeach
Za pomocąarray_map
z funkcją lambda / zamknięciaZa pomocąarray_map
z funkcją / metodą „statyczną”Czy jest jakieś inne podejście?Żeby było jasne, spójrzmy na przykłady, wszystkie robią to samo - mnożąc tablicę liczb przez 10:
$numbers = range(0, 1000);
Dla każdego
$result = array();
foreach ($numbers as $number) {
$result[] = $number * 10;
}
return $result;
Mapa z lambda
return array_map(function($number) {
return $number * 10;
}, $numbers);
Mapa z funkcją „statyczną”, przekazana jako odniesienie do łańcucha
function tenTimes($number) {
return $number * 10;
}
return array_map('tenTimes', $numbers);
Czy jest jakieś inne podejście? Chętnie usłyszęwszystko różnice między przypadkami z góry oraz wszelkie dane wejściowe, dlaczego należy je stosować zamiast innych.