用不同的键计数的数组

时间:2014-01-16 09:14:19

标签: php arrays math multidimensional-array

我需要的是将这个数组放在一个循环中,但是我无法使它工作,因为一周是1 - 9而密钥是0 - 8.所以我得到一个带有未定义偏移量的错误我知道为什么这样做但我不知道如何正确地做到这一点。

在人们问我为什么不改变第1周到第0周并从那里开始计数之前。我不能因为我做了一个基于1 - 52的计算,如果我从0开始计算它会弄乱我的计算

$totaal_vruchtzetting_week[10] = $totaal["week1"][0] + // = 0.46
                                 $totaal["week2"][1] + // = 2.87
                                 $totaal["week3"][2] + // = 4.97
                                 $totaal["week4"][3] + // = 4.35
                                 $totaal["week5"][4] + // = 3.02
                                 $totaal["week6"][5] + // = 2.03
                                 $totaal["week7"][6] + // = 1.41
                                 $totaal["week8"][7] + // = 1.12
                                 $totaal["week9"][8];  // = 1.13

                                 // Should be total 21,36

编辑: 这是我到现在为止的循环,但它给了我错误的答案加上2个错误

    for($week = 1; $week < 9; $week++)
    {
        for($sw = 0; $sw <= 8; $sw++)
        {
            $totaal_vruchtzetting_week[10] += $totaal["week".$week][$sw];
        }
    }



echo $totaal_vruchtzetting_week[10]; // Outputs 170.89

4 个答案:

答案 0 :(得分:2)

$i=1;
$totaal_vruchtzetting_week[10]=0;
foreach($totaal as $total)
{
 $totaal_vruchtzetting_week[10]+=$total["week$i"][$i-1];
 $i++;
}
echo $totaal_vruchtzetting_week[10];

答案 1 :(得分:1)

$sum = 0;
foreach(array_values($totaal) as $index=>$item)
    $sum += reset($item); 
echo $sum; // 21.36    
$totaal_vruchtzetting_week[10] = $sum;

Demo

答案 2 :(得分:1)

你应该总结这个循环

$i = 1;
$result = 0;

for ($i = 1; $i <= 9; $i++) {
    if (isset($totaal['week' . $i]) && isset($totaal['week' . $i][$i - 1])) {
            $result += floatval($totaal['week' . $i][$i - 1]);
    }
}

$totaal_vruchtzetting_week[10] = $result;

答案 3 :(得分:0)

不确定我是否收到您的问题,但您是否考虑foreach?无论密钥如何,它都会遍历每个数组。