PHP 之前的数组总和键

PHP array sum key before

我一直在尝试以特定方式使用我的阵列,但没有成功。我尝试了很多在这里可以找到的不同示例,但没有人帮助我。

$SelectDiaSPReceita 打印数千个这样的结果:

[0] => Array
    (
        [Origem] => VDC
        [Destino] => GRU
        [DataHoraVenda] => 2015-09-01 00:02:00.000
        [TotalEmissao] => 867.6800
    )

...

$arrayDiaSP = array();
foreach ($SelectDiaSPReceita as $value) {
    $hora = substr( $value['DataHoraVenda'] , 11, -10);
    $dia = substr( $value['DataHoraVenda'] , 8, -13);
    $mes = substr( $value['DataHoraVenda'] , 5, -16);
    $ano = substr( $value['DataHoraVenda'] , 0, -19);

    if(isset($arrayDiaSP[$hora])):
        $arrayDiaSP[$hora]['BilhetesVendidos']++;
        $arrayDiaSP[$hora]['TarifaTotal'] += $value['TotalEmissao'];
    else:
        $arrayDiaSP[$hora] = array( "Dia" => $dia, "Mes" => $mes, "Ano" => $ano, "Hora" => $hora, "BilhetesVendidos" => 1, "TarifaTotal" => number_format($value['TotalEmissao'], 2) );
    endif;
}

这是我制作的数组,它打印出如下内容:

[00] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 00
        [BilhetesVendidos] => 81
        [TarifaTotal] => 20285.77
    )

[01] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 01
        [BilhetesVendidos] => 27
        [TarifaTotal] => 6733.52
    )

[02] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 02
        [BilhetesVendidos] => 11
        [TarifaTotal] => 4088.1
    )

直到...

[23] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 23
        [BilhetesVendidos] => 80
        [TarifaTotal] => 23730.35
    )

每个键代表一天中的一个小时。我想要做的是将 BilhetesVendidosTarifaTotal 从当前密钥加到之前的密钥。例如:

[00] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 00
        [BilhetesVendidos] => 81
        [TarifaTotal] => 20285.77
    )

[01] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 01
        [BilhetesVendidos] => 108
        [TarifaTotal] => 27019.29
    )

[02] => Array
    (
        [Dia] => 01
        [Mes] => 09
        [Ano] => 2015
        [Hora] => 02
        [BilhetesVendidos] => 119
        [TarifaTotal] => 31107,39
    )

不断地..直到最后一个键。基本上它意味着:

key 00 = key 00
key 01 = key 00 + key 01
key 02 = key 01 + key 02
...

有什么帮助吗? 谢谢!

这是你想要的吗?

$bilhetesVendidos = 0;
$tarifaTotal      = 0;

foreach ($arrayDiaSP as &$entry) {
    $bilhetesVendidos += $entry['BilhetesVendidos'];
    $tarifaTotal      += $entry['TarifaTotal'];

    $entry['BilhetesVendidos'] = $bilhetesVendidos;
    $entry['TarifaTotal']      = $tarifaTotal;
}

它对值求和并用之前所有条目的总和替换每小时的 BilhetesVendidosTarifaTotal

如果您只想对当前值和先前值求和而不影响后续条目,则需要采用不同的方法。