yo personalmente segundo la sugerencia de Gordon a un sólo uso lambda (o crear) la función y, o bien hacer:
array_map(function($el) { return $el * 60; }, $input_array);
(PHP> = 5.3) o
array_map(create_function('$el', 'return $el * 60;'), $input_array);
(PHP < 5.3)
Definitivamente no veo razones para duplicar la matriz (puede ser engorroso si se trata de muchos valores); también, preste atención que usar foreach (que en segundo lugar puede ser útil) también puede ser peligroso si no está trabajando con cuidado ... y el mantenimiento puede ser desalentador de todos modos (porque debe recordar tratar con él siempre trabajas en ese código).Si no tiene motivos para optimizar en esta etapa (IE su aplicación no tiene problemas de velocidad), no lo haga ahora y no se preocupe por utilizar array_map. Ahora puede pensar en la facilidad de mantenimiento y optimizarlo más adelante, en caso de que realmente lo necesite.
De hecho, si vas por referencia y, utilizar foreach nuevo, es posible entrar en resultados inesperados (véase el ejemplo a continuación ...)
$a=array('1','2','3');
foreach ($a as &$v) {
$v *= 60;
}
print_r($a);
foreach ($a as $v);
print_r($a);
de salida es:
matriz ( [0] => 60 [1] => 120 [2] => 180 )
matriz ( [0] => 60 [1] => 120 [2] => 120 )
Probablemente no lo que esperas en el segundo ciclo. Es por eso que generalmente evito el foreach & byref combo cuando puedo.
me gustaría ir para la solución array_map/bcmul Gordon siempre si no desea utilizar las funciones foreach o personalizados, sin embargo, ¿ha considerado * no * es la multiplicación de la matriz en un 60 y en lugar de dividir el tiempo en un 60 PHP ? –
Voy a probar todos los ejemplos, solo para saber cómo hacerlo en el futuro. El ciclo foreach parece ser el más simple. ¿Cuál es la diferencia entre * = y *? – Henryz
Henryz: $ a * = 6 es la forma abreviada de $ a = $ a * 6 – lamas