Home >Backend Development >PHP Tutorial >PHP array learning to calculate the product of array elements
In the previous article "PHP Array Learning: Calculating the Sum of Array Elements", we introduced the method of calculating the sum of all elements in an array. Today we will change this basis. Since we can add the sum of all array elements, we can also find the product of all array elements.
This article will take a look at how to calculate the product of all elements in an array. There are also three methods: for loop, foreach loop and built-in function array_product(). Let’s learn more about it through code examples.
Method 1: Using a for loop
Let’s take a look at the following example:
<?php $array= array(2,3); $product=1; for ($i=0; $i < count($array); $i++) { $product*=$array[$i]; } echo '2 * 3 = '. $product; $array= array(2,3,4); $product=1; for ($i=0; $i < count($array); $i++) { $product*=$array[$i]; } echo '<br>2 * 3 * 4 = '. $product; $array= array(1,2,3,4,5,6,7,8,9,10); $product=1; for ($i=0; $i < count($array); $i++) { $product*=$array[$i]; } echo '<br>1 * 2 * 3 *...* 9 * 10 = '. $product; ?>
Output result:
2 * 3 = 6 2 * 3 * 4 = 24 1 * 2 * 3 *...* 9 * 10 = 3628800
In the previous article, because it is a summation, the initial value of the $sum variable is 0 and does not affect the subsequent value; in this article, it is a product, and anything multiplied by 0 is 0, so here$product
The initial value of the variable cannot be 0, but 1.
*=
The operator is "multiplication assignment", which can multiply the variable on the left side of the operator by the value of the expression on the right side and assign it to the variable on the left.
Method 2: Using foreach loop
Let’s take a look at the following example:
<?php $array= array(2,3); $product=1; foreach ($array as $value) { $product*=$value; } echo '2 * 3 = '. $product; $array= array(2,3,4); $product=1; foreach ($array as $value) { $product*=$value; } echo '<br>2 * 3 * 4 = '. $product; $array= array(1,2,3,4,5,6,7,8,9,10); $product=1; foreach ($array as $value) { $product*=$value; } echo '<br>1 * 2 * 3 *...* 9 * 10 = '. $product; ?>
Output result:
2 * 3 = 6 2 * 3 * 4 = 24 1 * 2 * 3 *...* 9 * 10 = 3628800
foreach In the loop statement, when traversing the array, the value of the current array will be assigned to $value
in each loop; then use "$product*=$value;
in each loop ” statement simply multiplies the value of the current array and the product of the previous array elements. [Recommended learning: PHP loop learning three: How to use a for loop statement to traverse an array]
Method 3: Use the array_product() function
array_product () is a built-in function in PHP that returns the product of all elements in an array.
Let’s take a look at how array_product() calculates the product of array elements through code examples:
<?php $array= array(2,3,4); echo '2 * 3 * 4 = '. array_product($array); $array= array(3,4,5); echo '<br>3 * 4 * 5 = '. array_product($array); $array= array(1,2,3,4,5,6,7,8,9,10); echo '<br>1 * 2 * 3 *...* 9 * 10 = '. array_product($array); ?>
Output result:
2 * 3 * 4 = 24 3 * 4 * 5 = 60 1 * 2 * 3 *...* 9 * 10 = 3628800
If$array## If there are non-numeric elements in #, PHP will convert them into a numeric value (implicit data type conversion). If the conversion fails, it will be treated as a 0 value.
<?php $array= array(2,"3.1",4); echo '2 * 3.1 * 4 = '. array_product($array); $array= array(3,"10.abc",5); echo '<br>3 * "10.abc" * 5 = 3 * 10 * 5 ='. array_product($array); $array= array(3,"hello",5); echo '<br>3 * "hello" * 5 = 3 * 0 * 5 ='. array_product($array); ?>
2 * 3.1 * 4 = 24.8 3 * "10.abc" * 5 = 3 * 10 * 5 =150 3 * "hello" * 5 = 3 * 0 * 5 =0Okay, that’s all. If you want to know anything else, you can click this. → →Finally, I would like to recommend a free video tutorial on PHP arrays:
PHP function array array function video explanation, come and learn!
The above is the detailed content of PHP array learning to calculate the product of array elements. For more information, please follow other related articles on the PHP Chinese website!