Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要从数组中单独访问for循环外部的值_Php_Arrays_Variables_For Loop - Fatal编程技术网

Php 需要从数组中单独访问for循环外部的值

Php 需要从数组中单独访问for循环外部的值,php,arrays,variables,for-loop,Php,Arrays,Variables,For Loop,我有一个php for循环和一个计算。现在,我想将计算中的每个值放入一个数组中,并在for循环之外单独访问它们 这是行不通的,无论我在尝试什么,我都会遇到各种各样的错误 这是我的密码 $week=1; // Begin week $eind_week1 = 4; // Einde week eerste berekening $eind_week2 = 9; // Einde week tweede berekening $groei_dynamiek = array(

我有一个php for循环和一个计算。现在,我想将计算中的每个值放入一个数组中,并在for循环之外单独访问它们

这是行不通的,无论我在尝试什么,我都会遇到各种各样的错误

这是我的密码

$week=1; // Begin week
    $eind_week1 = 4; // Einde week eerste berekening
    $eind_week2 = 9; // Einde week tweede berekening

    $groei_dynamiek = array();

    for($week; $week <= $eind_week1; $week++) // Dit is een berekening tot week 4, de weken daarna is een andere berekening. Zie hieronder
    {

        $groei_dynamiek1    = -0.0195 * pow($week, 3) + 0.1092 * pow($week, 2) - 0.073*$week + 0.0059;
        $groei_dynamiek1    = sprintf("%.1f%%", $groei_dynamiek1 * 100);

        $groei_dynamiek["week"][] = $groei_dynamiek1;

        @$totaal += $groei_dynamiek;
    }

echo $groei_dynamiek["week"][0];
echo $groei_dynamiek["week"][1];
echo $groei_dynamiek["week"][2];
echo $groei_dynamiek1["week"][3];
$week=1;//开始一周
$eind_week1=4;//埃因德·贝雷克宁周酒店
$eind_week2=9;//埃因德周特威德贝雷肯宁酒店
$groei_dynamiek=array();

对于($week;$week$groei_dynamiek1设置为数组,但$groei_dynamiek1['week']未设置为数组

   $groei_dynamiek1["week"] = array();

是必需的。

语句
$groei\u dynamiek1=array();
必须放在for循环之前。否则,循环的每次迭代都会将数组设置为空,忽略在上一次迭代中向数组添加的值。循环之前必须有另一条语句
$totaal=0;
。请始终记住,使用
@
抑制错误并不是一个好主意。最后,您应该uldn不在数组本身上执行计算;相反,您需要一个临时变量(我们称之为
$temp
)。更正这些错误后,您的代码将变为:

$week = 1; // Begin week
$eind_week1 = 4; // Einde week eerste berekening
$eind_week2 = 9; // Einde week tweede berekening
$totaal = 0;
$groei_dynamiek1 = array();
for($week; $week <= $eind_week1; $week++){
// Dit is een berekening tot week 4, de weken daarna is een andere berekening. Zie hieronder
        $temp = -0.0195 * pow($week, 3) + 0.1092 * pow($week, 2) - 0.073*$week + 0.0059;
        $temp = sprintf("%.1f%%", $temp * 100);
        $groei_dynamiek1["week"][] = $temp;
        $totaal += $temp;
}
unset($temp);
echo $groei_dynamiek1["week"][1];
$week=1;//开始一周
$eind_week1=4;//Einde week eerste berekening
$eind_week2=9;//Einde week tweede berekening
$totaal=0;
$groei_dynamiek1=array();

对于循环的每个迭代中的($week;$week),您都要执行以下操作:
$groei\u dynamiek1=array()
花几分钟思考一下这是个问题的原因。嗨,我现在把它放在我的循环之外,但它仍然不起作用……感谢上帝,感谢你的解释。这很有效。对不起,我是php新手。也感谢$totaal解决方案。Dindt知道你必须给它赋值为空或0。@Julez,我不会对sug说荷兰语一般来说,将变量命名为相同的变量通常是一个错误的做法,只是给每个变量加上一个不同的数字(<代码> @ EndIdWea1 VS <代码> $EndInWeix2和<代码> GrayiAdvixIK1 VS <代码> $GROEIAGROUTYIEK除其他原因外,它通过简单的打字错误很容易在键盘上敲打相邻的数字来引入bug。