首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL查询中PHP的累积和

MySQL查询中PHP的累积和
EN

Stack Overflow用户
提问于 2017-11-29 12:39:26
回答 2查看 857关注 0票数 0

我想对MySQL查询中的数据进行累积和。我的SQL查询已经运行良好,但我不知道如何进行“suma”列的累积和。我希望保留MySQL查询表中的日期,但是下一个索引的累积和应该是这样的。

来自MySQL查询的数组如下所示。

代码语言:javascript
复制
[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
    )

),我希望这个数组或新的数组看起来如下:

代码语言:javascript
复制
[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
    )

我试过这样做,但它只显示了我的最后一次约会和完全累积,而不是每个索引。

代码语言:javascript
复制
while ($row = mysqli_fetch_assoc($result)) {

    $myArray['data'] = $row['data'];
    $myArray['suma'] += $row['SUMA'];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-29 14:34:11

创建数组时执行此操作

代码语言:javascript
复制
$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);
票数 0
EN

Stack Overflow用户

发布于 2017-11-29 13:10:06

代码语言:javascript
复制
   <?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);

产出如下:

代码语言:javascript
复制
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%确定的情况下这样做)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47553115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档