Php 和值数组

Php 和值数组,php,arrays,sum,Php,Arrays,Sum,我有这样的数组: $array = array(1, 4, 8, 3, 7); <?php $array = array(1, 4, 8, 3, 7); array_unshift($array, 0); array_pop($array); foreach($array as $key => $val) { echo $val; } ?> 我想求数组的和值,但首先,我按如下方式取消移动数组: $array = array(1, 4, 8, 3, 7); &

我有这样的数组:

$array = array(1, 4, 8, 3, 7);
<?php

$array = array(1, 4, 8, 3, 7);

array_unshift($array, 0);
array_pop($array);

foreach($array as $key => $val) {
   echo $val;
}

?>
我想求数组的和值,但首先,我按如下方式取消移动数组:

$array = array(1, 4, 8, 3, 7);
<?php

$array = array(1, 4, 8, 3, 7);

array_unshift($array, 0);
array_pop($array);

foreach($array as $key => $val) {
   echo $val;
}

?>

然后我想先用新数组(
0,1,4,8,3,7
)求和数组(
0,1,4,8,3
) 像1加0,4加1,8加4这样的总和

我希望输出是:
1,5,12,11,10

用PHP求和有什么诀窍吗


非常感谢

您可以使用for循环而不是foreach

示例

$array = $array2 = array(1, 4, 8, 3, 7);

array_unshift($array, 0);
array_pop($array);

$array3 = [];
for($i = 0; $i < count($array); $i++) {
  $array3[] = $array[$i]+$array2[$i];
}

print_r($array3);
就用吧。 array_map允许您同时在多个数组上使用自定义函数

$array = array(1, 4, 8, 3, 7);

$others = $array;
array_unshift($others, 0);
array_pop($others);

function sumarray($v1,$v2){
    return $v1+$v2;
}

$res = array_map('sumarray', $array,$others);
print_r($res);
结果像

Array
(
    [0] => 1
    [1] => 5
    [2] => 12
    [3] => 11
    [4] => 10
)

您可以将弹出的值存储在变量(
弹出的
)中,以便以后使用。然后,您可以使用常规for循环在数组上循环,并在循环完成后将弹出的
值添加到数组中:

$array = array(1, 4, 8, 3, 7);

array_unshift($array, 0);
$popped = array_pop($array);

$result = [];
for($i = 0; $i < count($array)-1; $i++) {
    $val1 = $array[$i];
    $val2 = $array[$i + 1];

    $result[] =  $val1 + $val2;
}

$result[] = end($array) + $popped; // add the last element with the popped value
print_r($result);

@凯末德。别担心。不要忘记将最合适的答案标记为“已回答”