Gruppieren Sie in der foreach-Schleife in PHP nach Datum und erhalten Sie die Zählsumme derselben Zeilen
P粉304704653
P粉304704653 2023-09-16 19:05:48
0
1
599

Ich habe ein Array wie dieses

Array
(
    [0] => Array
        (
            [0] => 2023-06-28
            [1] => 5482
        )

    [1] => Array
        (
            [0] => 2023-06-28
            [1] => 316
        )

    [2] => Array
        (
            [0] => 2023-06-28
            [1] => 189
        )

    [3] => Array
        (
            [0] => 2023-06-29
            [1] => 5
        )

    [4] => Array
        (
            [0] => 2023-06-29
            [1] => 0
        )

    [5] => Array
        (
            [0] => 2023-06-30
            [1] => 5788
        )

    [6] => Array
        (
            [0] => 2023-06-30
            [1] => 1266
        )
)

Ich möchte nach Datum gruppieren und die Werte summieren

$output=array();
foreach($array as $values){
    $date = $values[0];
    $output[$d][1]+=$values[1];
}
Das Ergebnis von

$output ist

Array
(
    [0] => Array
        (
            [0] => 2023-06-28
            [1] => 5987
        )

    [1] => Array
        (
            [0] => 2023-06-29
            [1] => 5
        )

    [2] => Array
        (
            [0] => 2023-06-30
            [1] => 7054
        )
)

Das ist alles in Ordnung, aber ich muss den Durchschnitt berechnen und nicht die Werte summieren. Meine Idee ist also, die Summe desselben Tages in einem foreach zu ermitteln und die Summe dann durch den Betrag desselben Tages zu dividieren. Für das Datum 28.06.2023 beträgt die Summe beispielsweise 5987 und die Menge 3, sodass das Ergebnis 5987/3 sein sollte.

Gibt es eine Möglichkeit, dies zu tun, oder eine andere Möglichkeit, den Durchschnitt in einem Foreach zu ermitteln?

P粉304704653
P粉304704653

Antworte allen(1)
P粉807239416
# 构建数组
$output = [];
foreach($array as $values){
    $date = $values[0];
    if(!isset($output[$date])) {
        $output[$date] = ['total' => 0, 'count' => 0];
    }
    $output[$date]['total'] += $values[1];
    $output[$date]['count']++;
}

# 计算总和
foreach($output as $date => $data){
    $output[$date]['average'] = ($data['total'] / $data['count']);
}

print_r($output);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage