Привет Есть массив примерно такого вида PHP: array(1,2,3,4,5); Нужно суммировать и получить массив такого вида PHP: arra(3,6,10,15); сумма первого и второго ,сумма первого второго и третьего и так далее Спасибо заранее
PHP: function sum_array($arr){ foreach($arr as $val){ $a[]=$val; $newArr[]=array_sum($a); } array_shift($newArr); return $newArr; } print_r(sum_array(array(1,2,3,4,5,6))); Код (Text): Array ( [0] => 3 [1] => 6 [2] => 10 [3] => 15 [4] => 21 )
Нет нотиса не будет, хотя мне тоже нравится писать --- Добавлено --- Можно, только мне больше foreach нравится с массивами. А самому не додуматься? PHP: <?php $a = [1,2,3,4,5]; $a1 = []; $s = 0; foreach ($a as $index => $num) { $s += $num; if ($index > 0) { $a1[] = $s; } } var_export($a1);
Ну можно например так: PHP: function sum_array($arr){ $newArr=[]; $cnt = count($arr); for($i=0;$i<$cnt;$i++){ $tmpVal = $arr[$i]; if(isset($newArr[$i-1])){ $newArr[]=$tmpVal+$newArr[$i-1]; } else { $newArr[]=$tmpVal; } } unset($newArr[0]); return $newArr; } print_r(sum_array(array(1,2,3,4,5,6))); Код (Text): Array ( [1] => 3 [2] => 6 [3] => 10 [4] => 15 [5] => 21 ) Ключи массива при желании можно изменить.
Просто здесь временный массив не нужен, можно сразу сумму накапливать. https://php.ru/forum/threads/rekursivno-slozhit-massiv.62291/#post-504621
Ну да,можно и без временного массива.Ну мы показали ТС разные подходы к решению его задачи,пусть выбирает любой)
Пришлось сделать так потомучто здесь несколько массивов PHP: for($i = 0; $i <count($n); ++$i){ $g[$i]=$d[$i]-$k[$i]; $t=array_sum($g);} Всем спасибо
PHP: <?php $arr = array(1, 2, 3, 4, 5); $arra = array(); for ($i = 0; $i < count($arr) - 1; $i++) { $arra[$i] = $arr[$i] + $arr[$i+1]; $arr[$i+1] = $arra[$i]; echo $arra[$i], " "; }; ?> Пожалуйста.