Heim > Artikel > Backend-Entwicklung > Wie gruppiere und summiere ich Daten in einem 2D-Array nach Spalten 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!