我想对MySQL查询中的数据进行累积和。我的SQL查询已经运行良好,但我不知道如何进行“suma”列的累积和。我希望保留MySQL查询表中的日期,但是下一个索引的累积和应该是这样的。
来自MySQL查询的数组如下所示。
[0] => Array
(
[data] => 2017-11-01
[SUMA] => 19
)
[1] => Array
(
[data] => 2017-11-02
[SUMA] => 97
)
[2] => Array
(
[data] => 2017-11-03
[SUMA] => 296
)
[3] => Array
(
[data] => 2017-11-05
[SUMA] => 58
)
[4] => Array
(
[data] => 2017-11-06
[SUMA] => 216
)
[5] => Array
(
[data] => 2017-11-07
[SUMA] => 194
)
[6] => Array
(
[data] => 2017-11-08
[SUMA] => 444
)
[7] => Array
(
[data] => 2017-11-09
[SUMA] => 301
)
[8] => Array
(
[data] => 2017-11-10
[SUMA] => 213
)
[9] => Array
(
[data] => 2017-11-11
[SUMA] => 5
)
[10] => Array
(
[data] => 2017-11-12
[SUMA] => 8
)
[11] => Array
(
[data] => 2017-11-13
[SUMA] => 186
)
[12] => Array
(
[data] => 2017-11-14
[SUMA] => 227
)
[13] => Array
(
[data] => 2017-11-15
[SUMA] => 180
)
[14] => Array
(
[data] => 2017-11-16
[SUMA] => 225
)),我希望这个数组或新的数组看起来如下:
[0] => Array
(
[data] => 2017-11-01
[SUMA] => 19
)
[1] => Array
(
[data] => 2017-11-02
[SUMA] => 116
)
[2] => Array
(
[data] => 2017-11-03
[SUMA] => 412
)
[3] => Array
(
[data] => 2017-11-05
[SUMA] => 470
)
[4] => Array
(
[data] => 2017-11-06
[SUMA] => 686
)
[5] => Array
(
[data] => 2017-11-07
[SUMA] => 880
)
[6] => Array
(
[data] => 2017-11-08
[SUMA] => 1324
)
[7] => Array
(
[data] => 2017-11-09
[SUMA] => 1625
)
[8] => Array
(
[data] => 2017-11-10
[SUMA] => 1838
)
[9] => Array
(
[data] => 2017-11-11
[SUMA] => 1843
)
[10] => Array
(
[data] => 2017-11-12
[SUMA] => 1851
)
[11] => Array
(
[data] => 2017-11-13
[SUMA] => 2037
)
[12] => Array
(
[data] => 2017-11-14
[SUMA] => 2264
)
[13] => Array
(
[data] => 2017-11-15
[SUMA] => 2444
)
[14] => Array
(
[data] => 2017-11-16
[SUMA] => 2699
)我试过这样做,但它只显示了我的最后一次约会和完全累积,而不是每个索引。
while ($row = mysqli_fetch_assoc($result)) {
$myArray['data'] = $row['data'];
$myArray['suma'] += $row['SUMA'];
}发布于 2017-11-29 14:34:11
创建数组时执行此操作
$s=0;
$myArray = [];
while ($row = mysqli_fetch_assoc($result)) {
$temp['data'] = $row['data'];
$s = $temp['suma'] = $row['SUMA'] + $s;
$myArray[] = $temp;
}
echo '<pre>';
print_r($myArray);发布于 2017-11-29 13:10:06
<?php
$array=array(
0 => Array
(
'data' => '2017-11-01',
'SUMA' => 19
),
1 => Array
(
'data' => '2017-11-02',
'SUMA' => 97
),
2 => Array
(
'data' => '2017-11-03',
'SUMA' => 296,
),
3 => Array
(
'data' => '2017-11-05',
'SUMA' => 58,
),
);
$i=0;
while ($i<count($array) )
{
if($i==0) {
$newArray[0]['data'] = $array[$i]['data'];
$newArray[0]['SUMA'] = $array[$i]['SUMA'];
}
else{
$newArray[$i]['data']=$array[$i]['data'];
$newArray[$i]['SUMA']=$array[$i]['SUMA']+$newArray[$i-1]['SUMA'];
}
$i++;
}
echo '<pre>';
print_r($newArray);产出如下:
Array
(
[0] => Array
(
[data] => 2017-11-01
[SUMA] => 19
)
[1] => Array
(
[data] => 2017-11-02
[SUMA] => 116
)
[2] => Array
(
[data] => 2017-11-03
[SUMA] => 412
)
[3] => Array
(
[data] => 2017-11-05
[SUMA] => 470
)
)您可以删除if/else并只保留“其他”,但是您会收到数组的位置-1的通知。代码运行良好,您只需禁用通知警告即可(我不建议只在100%确定的情况下这样做)
https://stackoverflow.com/questions/47553115
复制相似问题