gpt4 book ai didi

php - 将每个最后一个值与数组中的所有先前值相加

转载 作者:可可西里 更新时间:2023-11-01 13:10:10 24 4
gpt4 key购买 nike

我有一些值的数组,我需要将其转换为新数组并将每个值与所有先前值相加。例如(数组长度、键和值总是不同的),这就是我所拥有的:

Array
(
[0] => 1
[1] => 1
[2] => 5
[3] => 1
[4] => 1
[7] => 1
[8] => 3
[9] => 1
)

这就是我需要的:

Array
(
[0] => 1
[1] => 2
[2] => 7
[3] => 8
[4] => 9
[7] => 10
[8] => 13
[9] => 14
)

我尝试了很多不同的方法,但总是卡在某个地方或意识到我在某个地方错了。我有一种感觉,我想在这里重新发明一个轮子,因为我认为必须有一些简单的功能,但没有找到解决方案。这是我最后尝试的方式:

$array = array( "0"=> 1, "1"=> 1, "2"=> 5, "3"=> 1, "4"=> 1, "7"=> 1, "8"=> 3, "9"=> 1 );
$this = current($array);
$next = next($array);
$end = next(end($array));
$sum = 0;
$newArray = array();

foreach ($array as $val){
if($val != $end){
$sum = ($this += $next);
array_push($newArray, $sum);
}
}

print_r($newArray);

..不幸的是又错了。我花了很多时间寻找如何不去我需要去的地方的方法,有人可以把我踢到正确的方向吗?

最佳答案

建议你使用array_slice() & array_sum()

$array = array( "0"=>1,"1"=>1,"2"=>5,"3"=>1,"4"=>1,"7"=>1,"8"=>3,"9"=>1);
$keys = array_keys($array);
$array = array_values($array);

$newArr = array();

foreach ($array as $key=>$val) {
$newArr[] = array_sum(array_slice($array, 0, $key+1));
}
$newArr = array_combine($keys, $newArr);

print '<pre>';
print_r($newArr);
print '</pre>';

输出:

Array
(
[0] => 1
[1] => 2
[2] => 7
[3] => 8
[4] => 9
[7] => 10
[8] => 13
[9] => 14
)

引用:

关于php - 将每个最后一个值与数组中的所有先前值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27676490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com