2013-10-01 45 views
0

當我嘗試創建一個從另一個陣列獲取數據的數組時,我收到一個未定義的偏移錯誤。 與數據數組是:陣列PHP Undefined偏移錯誤

$ 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]; 

所以有這樣的:

$increment[$i] = $dailyIncome[$i]; 

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

任何建議:

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

但行即時得到未定義的偏移誤差?

+0

作爲你的$ dailyIncome是一個嵌套的數組:'如果($ i == 1){ #code ... $ increment [$ i] = $ dailyIncome [0] [$ i]; } else { $ increment [$ i] = $ dailyIncome [0] [$ i] + $ increment [$ i-1]; }' –

+0

我不知道它是如何成爲一個嵌套數組。這是怎麼發生的? –

+0

一定有別的地方在做這件事。該代碼看起來應該返回一個平面數組。你確定沒有其他地方的'getDailyGraph()'的返回值被操縱,比如'$ dailyIncome = array(getDailyGraph());'或者什麼? –

回答

1

發生錯誤是因爲$dailyIncome是嵌套數組 - $dailyIncome只有一個成員($dailyIncome[0]),但$dailyIncome[0]是一個包含31個成員的數組。

您需要更改的$dailyIncome源是一個單級陣列與31名成員,或者你需要每參考$dailyIncome[$i]改變$dailyIncome[0][$i]

+0

林不知道當我將$ dailyIncome定義爲嵌套數組時,你知道我該如何避免這種情況? –

+0

您必須向我們展示生成'$ dailyIncome'的代碼,以便我們可以看到發生了什麼。 –

+0

我剛剛編輯我的帖子,顯示我是如何做到的。 –