Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere und summiere ich Daten in einem 2D-Array nach Spalten in PHP?

Wie gruppiere und summiere ich Daten in einem 2D-Array nach Spalten in PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 09:15:02902Durchsuche

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

2D-Array-Daten nach Spalten gruppieren und summieren

In diesem Programmierszenario besteht das Ziel darin, Zeilen eines 2D-Arrays nach Spalten zu gruppieren Werte (z. B. „dd“) und summieren anschließend die Werte einer anderen Spalte („quantity“) innerhalb jeder Gruppe. Das Ergebnis ist ein reduziertes 2D-Array mit eindeutigen „dd“-Werten und aggregierten Mengeninformationen.

Beispiel:

Betrachten Sie das folgende Eingabearray:

[
    ['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'],
]

Das gewünschte Ausgabearray wäre:

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

Lösung mit PHP:

Um diese Datentransformation zu erreichen, können wir die integrierten Arrays und Schleifenfunktionen von PHP nutzen:

// Input array
$in = array(array());

// Create output array
$out = array();

// Iterate through input rows
foreach ($in as $row) {
    // Check if 'dd' key exists in output array
    if (!isset($out[$row['dd']])) {
        // Initialize entry for 'dd' with empty quantity
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }

    // Accumulate quantity for 'dd' key
    $out[$row['dd']]['quantity'] += $row['quantity'];
}

// Adjust output array to numerical indexing
$out = array_values($out);

// Display output array
var_dump($out);

Das obige ist der detaillierte Inhalt vonWie gruppiere und summiere ich Daten in einem 2D-Array nach Spalten in PHP?. 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