数组 PHP 未定义偏移错误


Arrays PHP Unidefined Offset Error

我在尝试创建一个数组从另一个数组获取数据时遇到未定义的偏移错误。包含数据的数组为:

$dailyIncome

array(1) { 
    [0]=> array(31) { 
        [1]=> int(0)    [2]=> int(0)    [3]=> int(0)    [4]=> int(0) 
        [5]=> int(0)    [6]=> int(0)    [7]=> int(0)    [8]=> int(0) 
        [9]=> int(0)    [10]=> int(0)   [11]=> int(0)   [12]=> int(0)
        [13]=> int(0)   [14]=> string(6) "400.00"       [15]=> int(0) 
        [16]=> int(0)   [17]=> int(0)   [18]=> string(5) "36.00" 
        [19]=> string(7) "5000.00"      [20]=> int(0)   [21]=> string(6) "123.00"
        [22]=> int(0)   [23]=> string(9) "101010.00"    [24]=> int(0) 
        [25]=> int(0)   [26]=> int(0)   [27]=> string(5) "23.50" 
        [28]=> string(9) "456464.00"    [29]=> int(0)   [30]=> int(0) 
        [31]=> int(0) 
    } 
}

此数组表示一个月中的几天和每天完成的付款。(在该数组中列出的大部分日子内没有付款)。现在我想做一个数组,以递增的方式对每天完成的付款求和。例:

$increment[1] = $dailyIncome[1];
$increment[2] = $dailyIncome[2] + $increment[1];
$increment[3] = $dailyIncome[2] + $increment[2];

所以有这个:

  function dailyIncrement($dailyIncome){
    $increment = array();
    for ($i=1; $i <= 31 ; $i++) { 
        # code...
        if ($i == 1) {
            # code...
            $increment[$i] = $dailyIncome[$i];
        }else{
            $increment[$i] = $dailyIncome[$i] + $increment[$i-1];
        }
    }
    return $increment;
 }

但是我在行中得到未定义的偏移误差:

$increment[$i] = $dailyIncome[$i];
$increment[$i] = $dailyIncome[$i] + $increment[$i-1];

有什么建议吗?

发生错误是因为$dailyIncome是一个嵌套数组 - $dailyIncome只有一个成员($dailyIncome[0]),但$dailyIncome[0]是一个有 31 个成员的数组。

您需要将$dailyIncome源更改为具有 31 个成员的单级数组,或者需要将对 $dailyIncome[$i] 的每个引用更改为$dailyIncome[0][$i]