Heim >Backend-Entwicklung >PHP-Tutorial >Wie gruppiert und summiert man Daten in einem 2D-Array nach Spalten?

Wie gruppiert und summiert man Daten in einem 2D-Array nach Spalten?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 03:26:02203Durchsuche

How to Group and Sum Data in a 2D Array by Column?

Daten in einem 2D-Array gruppieren und summieren

In diesem Szenario möchten Sie die Zeilen eines 2D-Arrays basierend auf einem bestimmten gruppieren Werte der Spalte und dann die Werte einer anderen Spalte innerhalb jeder Gruppe summieren.

Eingabe Daten:

[
    ['quantity' => 5,  'dd' => '01-Nov-2012'],
    ['quantity' => 10, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 4,  'dd' => '03-Nov-2012'],
    ['quantity' => 15, 'dd' => '03-Nov-2012'],
];

Gewünschtes Ergebnis:

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
];

Implementierung:

Um dies zu erreichen, Befolgen Sie diese Schritte:

  1. Durchlaufen Sie die Eingabearrays Zeilen.
  2. Für jede Zeile:

    • Überprüfen Sie, ob das gruppierte Array einen Eintrag enthält, der durch den „dd“-Wert der aktuellen Zeile indiziert ist.
    • Wenn nicht , erstellen Sie einen Eintrag mit dem Wert „dd“ und einer anfänglichen „Menge“ von 0.
    • Erhöhen Sie den Wert „Menge“ von gruppierter Array-Eintrag nach der „Menge“ der aktuellen Zeile.
  3. Konvertieren Sie das gruppierte Array mit array_values() in ein numerisch indiziertes Array.

Der folgende PHP-Code demonstriert diesen Prozess:

$in = array(array()); // your input
$out = array();
foreach ($in as $row) {
    if (!isset($out[$row['dd']])) {
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }
    $out[$row['dd']]['quantity'] += $row['quantity'];
}
$out = array_values($out); // make the out array numerically indexed
var_dump($out);

Dieser Ansatz gruppiert die Eingabedaten effektiv nach der Spalte „dd“ und summiert sie Geben Sie für jede Gruppe Werte in der Spalte „Menge“ ein und erzeugen Sie so die gewünschte Ausgabe.

Das obige ist der detaillierte Inhalt vonWie gruppiert und summiert man Daten in einem 2D-Array nach Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn