Ben şahsen ikinci Gordon öneri sadece bir lambda (veya oluşturulan) işlevini kullanmak istiyorum ve birini yapın:
array_map(function($el) { return $el * 60; }, $input_array);
(PHP> = 5.3) veya
array_map(create_function('$el', 'return $el * 60;'), $input_array);
(PHP <5.3)
Kesinlikle ben diziyi çoğaltmak için hiçbir nedenleri (değerlerin yeri söz konusu ise hantal olabilir) bakın; Ayrıca, dikkatli onunla çalışmaya değilseniz foreach (ki ben ikinci kullanışlı olabilir) kullanılarak da tehlikeli olabilir dikkat ... ve onunla her zaman başa çıkmak için hatırlamak zorunda çünkü o bakım (zaten zor olabilir siz) bu kodu çalışır. Eğer bu aşamada optimize etmek için hiçbir nedenleri (IE uygulama hız değil sorunları var) varsa, şimdi bunu yapmayın ve array_map kullanma konusunda endişelenmeyin. Artık bakım kolaylığı düşünmek ve durumda gerçekten gerek, daha sonra optimize edebilirsiniz.
Eğer referans gitmek ve sonra tekrar foreach kullanırsanız Aslında, beklenmeyen sonuçlar adım (aşağıdaki örneğe bakın ...) olabilir
$a=array('1','2','3');
foreach ($a as &$v) {
$v *= 60;
}
print_r($a);
foreach ($a as $v);
print_r($a);
Çıktı:
Array
(
[0] => 60
[1] => 120
[2] => 180
)
Array
(
[0] => 60
[1] => 120
[2] => 120
)
Probably not what you expect on the second cycle.
This is why I usually avoid the foreach & byref combo when I can.