我需要将变量相乘,但它们的数量并不总是相同,是否有任何函数可以这样做,或者如何解决这个问题?
$string = "abc";
$amn = strlen($string);
$i = 1;
while ($i <= $amn) {
$comb[$i] = $i;
$i++;
}
它会将数字1,2和3保存到变量$comb[$i]
中,我需要将它们相互相乘$comb[1]*$comb[2]*$comb[3]
。提前谢谢。
答案 0 :(得分:1)
有一个函数array_sum(http://php.net/manual/de/function.array-sum.php)。这总结了你的数组。如果您需要使用产品array_product。
BR,
TJ
答案 1 :(得分:0)
这个怎么样:
$product = 1;
while($i <= $amn){
$product = $product*$i;
$i++;
}
这会计算因子n!
,即1*2*3*4*5*...*n
(你可以省略乘以1,因为它实际上是一个nop)。
您还可以使用for循环,以使事情更紧凑:
$product = 1;
for($i = 2; $i <= $amn; $product *= $i++);
答案 2 :(得分:-1)
首先,既然你正在使用一个索引,在给定的时间内运行一个循环,那么for循环在这里更可靠,它管理索引变量$i
的范围并使更多可读代码。
for($i=1;$i<=strlen($str);$i++){
$comb[$i]=$i;
}
现在将它们相乘:
$product = 1;
foreach($com as $key => $value){
$product*=$value;
}
如果你要做的只是计算一个阶乘,你甚至不需要制作一个数组:
function factorial($num){
$fac = 1;
for($i=2;$i<=$num){
$fac*=$i;
}
}