Какая разница в производительности (если есть) между этими тремя подходами, которые используются для преобразования массива в другой массив?
- Использование
foreach
- Использование
array_map
с функцией лямбда/замыкания - Использование
array_map
с функцией "static" /методом - Есть ли другой подход?
Чтобы я убедился, давайте рассмотрим примеры, все делающие то же самое - умножая массив чисел на 10:
$numbers = range(0, 1000);
Foreach
$result = array();
foreach ($numbers as $number) {
$result[] = $number * 10;
}
return $result;
Карта с лямбдой
return array_map(function($number) {
return $number * 10;
}, $numbers);
Карта с функцией "статические", переданная как ссылка на строку
function tenTimes($number) {
return $number * 10;
}
return array_map('tenTimes', $numbers);
Есть ли другой подход? Я буду рад услышать действительно все различия между случаями сверху и любыми входами, почему нужно использовать вместо других.