循环数组,将所有先前值添加到当前值

问题描述 投票:0回答:1

我希望循环遍历一个数组,将前一个值添加到当前值。这是我最新的尝试,但没有输出想要的结果

$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 )

我明白为什么我会得到当前的输出,我只是不知道如何改变它才能有效地获得所需的输出。有什么想法吗?

php arrays loops addition cumulative-sum
1个回答
4
投票
$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++;
};
© www.soinside.com 2019 - 2024. All rights reserved.