2014-03-19 97 views
0

我希望通過將當前值添加到前一個值的數組循環。這是我最新的嘗試,但不輸出期望的結果循環數組將前一個值添加到當前值

$array = array(
    "myKeyName" => 3, 
    "anotherName" => 8, 
    "aKeyName" => 12, 
    "keyName"  => 6, 
    "anotherKey" => 34 
    ); 

$setItems = array(); 

$i = 1; 

foreach($array as $key => $val){ 
    $setItems['item'.$i] = $val+$val; 
    $i++; 
}; 

print_r($setItems); 

輸出

Array ([item1] => 6 [item2] => 16 [item3] => 24 [item4] => 12 [item5] => 68) 

所需的輸出

Array ([item1] => 3 [item2] => 11 [item3] => 23 [item4] => 29 [item5] => 63) 

我明白爲什麼我收到的電流輸出,我只是不;知道如何改變它可以高效地獲得所需的輸出。有任何想法嗎?

+1

這聽起來有點像家庭作業順便說一句,是嗎?在任何情況下,您都必須跟蹤數組中以前的值的總和,並將其添加到每次迭代中數組的當前值。 – Alex

+0

這不是家庭作業。自從我上學以來的幾年。我是新手。 – StevenPHP

+0

@StevenPHP你在下面檢查我的答案嗎? – rakeshjain

回答

3
$array = array(
    "myKeyName" => 3, 
    "anotherName" => 8, 
    "aKeyName" => 12, 
    "keyName"  => 6, 
    "anotherKey" => 34 
    ); 

$setItems = array(); 

$i = 1; 
$previous = 0; 
foreach($array as $key => $val){ 
    $setItems['item'.$i] = $val+$previous; 
    $previous += $val; 
    $i++; 
}; 
+0

完美!我嘗試了類似的東西。如果你有'+ ='它很累'。='。謝謝! – StevenPHP

相關問題