乘以while()

时间:2011-12-11 15:47:36

标签: php while-loop combinations

我需要将变量相乘,但它们的数量并不总是相同,是否有任何函数可以这样做,或者如何解决这个问题?

$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]。提前谢谢。

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;
    }

}