試試吧
$my_array=null;
$my_array_sum=null;//累加用
$result["IT_TEST"]=array(2704558,2542468,2966324,3152991);
foreach ($result["IT_TEST"] as $AAA) {
$my_array[]=$AAA;
$my_array_sum[]= ( $my_array_sum==null?$AAA:($my_array_sum[(count($my_array_sum)-1)])+$AAA );
//將上一個累加結果+目前的值
}
print '<pre>';
print_r ($my_array);
print_r ($my_array_sum);//累加結果
print '<pre>';
因為php的泛型設計允許你變數這樣設
但建議:
$my_array=[];
$my_array_sum=[];
即使是在php也儘量養成單一變數單一型態。
在其他的語言,你這樣寫會直接跟你說型態不符。
另外其實善用一下array相關函式就得到你要的了:
foreach ($result["IT_TEST"] as $value) {
$my_array[] = $value;
$my_array_sum[] = array_sum($my_array);
}
不過如果說是要做為資料集合,其實最好是這樣做:
(我把table也秀出來了)
<?php
$data = [ 2704558 , 2542468 , 2966324 , 3152991 ];
$results = [];
$sum = 0;
foreach($data as $value){
$sum += $value;
$results[] = [
'value' => $value ,
'sum' => $sum
];
}
?>
<table>
<tr>
<th>value</th>
<th>sum</th>
</tr>
<?php foreach($results as $item):?>
<tr>
<td><?=$item['value']?></td>
<td><?=$item['sum']?></td>
</tr>
<?php endforeach?>
</table>
不過你既然已經提供答案,我也不發表回答了。
提醒一下,這是使用php5.4+新增的特性
$my_array=[];
$my_array_sum=[];
如果都是用比較新的版本開發
所以說……
除非系統太舊,或是沒有自管server的能力。
現在要嘛不是裝5.6就是7了吧。
除非是客戶需求,不然過舊的系統應該都不被考慮了。
(同時也考量到官方維護的問題。)
就好比現在都建議使用mysqli或pdo而不要再去用mysql指令集一樣的意思。
就又好比php 5.3有namespace,php 5.4支援簡式array以及增加trait的方法擴展。
相信一路玩過各種版本應該都知道每個時代的變革。
但如果是新手上路,當然還是選擇較新較穩定的版本就對了。
要簡潔的話,我會用array_reduce...
$from = array(1, 2, 3);
$to = array_reduce($from, function($pre, $cur){ return $pre + $cur; }, 0);
echo $to;//6
$my_array=[];
foreach($result["IT_TEST"] as $i => $v) {
$my_array[$i] = $my_array[$i-1] + $v;
}
print '<pre>';
print_r ($my_array);
print '<pre>';