Php 按键计算数组值

Php 按键计算数组值,php,arrays,Php,Arrays,我有一个数组问题,我可以计算相同的整数值吗。 请把我的示例放在底部 int = -21; 我的第一个阵列 我需要的是算法 Array ( [580] => 13.000000+int // sum -8 [582] => 8.000000+(-8) // 0 [485] => 7.000000 ) 事后结果 Array ( [580] => 8 [582] => 0 [485] => 7.000000 )

我有一个数组问题,我可以计算相同的整数值吗。 请把我的示例放在底部

int = -21;

我的第一个阵列

我需要的是算法

Array
(
    [580] => 13.000000+int // sum -8
    [582] => 8.000000+(-8) // 0 
    [485] => 7.000000
)
事后结果

Array
(
    [580] => 8
    [582] => 0
    [485] => 7.000000
)

如果我正确理解问题:

$array = [
    580 => 13.000000,
    582 => 8.000000,
    485 => 7.000000,
];

// The initial number to sum
$int = -21;

foreach ($array as $key => $val) {
    // Add the int number to the current element.
    $array[$key] = $val + $int;

    // Now replace $int with the new sum so we'll use that
    // in the next iteration instead
    $int = $array[$key];
}
较短的版本为:

foreach ($array as $key => $val) {
    $int = $array[$key] = $val + $int;
}
这将给你:

Array
(
    [580] => -8
    [582] => 0
    [485] => 7
)
(如您在评论中所述,第一个值是
-8


嘿,拉米尔。不幸的是,不清楚你在问什么。考虑更新你的问题以更清楚地解释问题(不要忘记你已经尝试过的)来帮助可能愿意帮助的人。对于第一个键:<代码> 13 000000 + int <代码>将导致<代码> -8 < /代码>,但是在结果数组中,它有< <代码> 8 > /代码>([4]=-8)[582 ]=0(485)。=>7.000000)你的问题不是这么说的。。。它说你想要
[580]=>8
,而不是
-8
。是哪一个?如果有什么不同的话,那就是这个评论让问题变得更不清楚了。我知道你是如何得到
-8
,但同样,你的问题的预期结果是
[580]=>8
。是哪一个<代码>[580]=>8或
[580]=>-8
?我知道你将如何得到
-8
,但不是
8
。这就是困惑所在。谢谢,伙计,我需要$int=$array[$key];这line@RamilHuseynov-如果这个答案解决了您的问题,请接受它,以便其他人知道它已经解决。解决按钮在哪里?在我的答案的左侧(在上方)应该有一个“接受”按钮(或者更确切地说是一个复选标记)。点击那个。您还可以阅读以下内容:
Array
(
    [580] => -8
    [582] => 0
    [485] => 7
)