array_product

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_productCalcula el producto de los valores de un array

Descripción

array_product(array $array): number

array_product() devuelve el producto de valores de un array.

Parámetros

array

El array.

Valores devueltos

Devuelve el producto como integer o float.

Historial de cambios

Versión Descripción
5.3.6 El producto de un array vacío ahora es 1, mientras que antes esta función devolvía 0 para un array vacío.

Ejemplos

Ejemplo #1 Ejemplo de array_product()

<?php

$a
= array(2, 4, 6, 8);
echo
"producto(a) = " . array_product($a) . "\n";
echo
"producto(array()) = " . array_product(array()) . "\n";

?>

El resultado del ejemplo sería:

producto(a) = 384
producto(array()) = 1

add a note

User Contributed Notes 5 notes

up
29
Andre D
19 years ago
This function can be used to test if all values in an array of booleans are TRUE.Consider:<?phpfunction outbool($test){    return (bool) $test;}$check[] = outbool(TRUE);$check[] = outbool(1);$check[] = outbool(FALSE);$check[] = outbool(0);$result = (bool) array_product($check);// $result is set to FALSE because only two of the four values evaluated to TRUE?>The above is equivalent to:<?php$check1 = outbool(TRUE);$check2 = outbool(1);$check3 = outbool(FALSE);$check4 = outbool(0);$result = ($check1 && $check2 && $check3 && $check4);?>This use of array_product is especially useful when testing an indefinite number of booleans and is easy to construct in a loop.
up
12
bsr dot anwar at gmail dot com
8 years ago
Here's how you can find a factorial of a any given number with help of range and array_product functions.function factorial($num) {    return array_product(range(1, $num));}printf("%d", factorial(5)); //120
up
1
gergely dot lukacsy at streamnet dot hu
2 years ago
Just a little correction for Andre D's answer: "(bool) array_product($array);" is equivalent with the conjunction of each array elements of $array, UNLESS the provided array is empty in which case array_product() will return 1, which will translate to boolean TRUE.To mitigate this, you should expand the function with an additional check:<?php$result = !empty($check) && !!array_product($check);?>
up
0
biziclop
2 years ago
You can use array_product() to calculate the geometric mean of an array of numbers:  <?php$a = [ 1, 10, 100 ];$geom_avg = pow( array_product( $a ), 1 / count( $a ));// = 9.999999999999998 ≈ 10?>
up
0
Marcel G
14 years ago
You can use array_product to calculate the factorial of n:
<?php
function factorial( $n )
{
  if( $n < 1 ) $n = 1;
  return array_product( range( 1, $n ));
}
?>

If you need the factorial without having array_product available, here is one:
<?php
function factorial( $n )
{
  if( $n < 1 ) $n = 1;
  for( $p++; $n; ) $p *= $n--;
  return $p;
}
?>
To Top