在函数内部使用For循环 - 不返回所有值

时间:2014-06-05 16:14:38

标签: php

我在显示函数calculateGrowth的结果时遇到问题。如下所示,我想找到10天期间每天的结果。我出于显而易见的原因使用了for循环。但是当我尝试显示结果时,我得到的只是一个结果。

function calculateGrowth(){
    $days = 0;
    $growth = 10;
    for($days = 0; $days < 10; $days++){
      $totalGrowth = $growth * pow(2, $days/10);
    }
    return $totalGrowth;
}

当前输出

18.6606598307

期望输出

Day Growth
1 - result
. - result
. - result
10

3 个答案:

答案 0 :(得分:2)

$totalGrowth = $growth * pow(2, $days/10);

应该是

$totalGrowth[] = $growth * pow(2, $days/10);
            ^^

这样它就变成了一个数组并包含你添加到它的所有值,而不是一个在循环的每次迭代中被覆盖的字符串。

答案 1 :(得分:1)

这听起来像是你想要得到的:

function calculateGrowth() {    
    list($days, $growth, $table) = array(range(1, 10), 10, array());

    foreach ($days as $day) {

      $table[$day] = $growth * pow(2, $day/10);
    }

    return $table;
}

答案 2 :(得分:0)

这是正确的,因为你的最后一个循环是这样做的

$totalGrowth = 10 * pow(2, 9/10)
$totalGrowth = 10*1.8660659830736;
$totalGrowth = 18.660659830736;

编辑:删除了上一条评论