Otra manera, similar a las anteriores, pero con un par de detalles que lo hacen un poquito más eficiente:
Código PHP:
Ver original$array1 = array(1, 2, 3, 4); $array2 = array(5, 6, 7, 8);
for ($i = 0, $l = count($array1); $i < $l; $i++) $array3[] = $array1[$i] * $array2[$i];
El resultado es:
Es básicamente lo mismo que los ejemplos anteriores, pero como dije al inicio, tiene dos detalles distintos; el primero, que el tamaño del array lo calculo una sola vez y no en cada iteración, porque si coloco directamente
$i < count($array1), tendría que calcularse en cada iteración el tamaño del array, en cambio, acá lo hago una sola vez, además, la impresión de los datos la hago insertando un salto de línea mediante la función
implode, con lo cual, solamente utilizo 1 bucle, haciendo así un tanto más eficiente al algoritmo.
También es posible hacerlo sin bucles:
Código PHP:
Ver original$array1 = array(1, 2, 3, 4); $array2 = array(5, 6, 7, 8);
function multi($a, $b){
return $a * $b;
}
$array3 = array_map("multi", $array1, $array2);
Y si tienes una versión de PHP mayor o igual a la 5.3, puedes usar una función anónima para ahorrar un poquito más de espacio:
Código PHP:
Ver original$array1 = array(1, 2, 3, 4); $array2 = array(5, 6, 7, 8);
return $a * $b;
}, $array1, $array2);
El resultado es:
Creo los arrays iniciales, además de una función que recibirá los valores de cada uno de ellos, los multiplicará y devolverá a un tercer array. A la función
array_map, le paso como parámetros el nombre de la función y ambos arrays, el resultado final, que es un array con los valores de la multiplicación entre cada uno de los elementos de los dos primeros arrays, es entregado a
$array3. La función
array_map trabaja de forma iterativa, es por eso que le va pasando internamente los valores a la función
multi, como normalmente lo harías con un bucle como While o For.
Saludos