Heim >Backend-Entwicklung >PHP-Tutorial >Wie gruppiert man ein mehrdimensionales Array nach zwei Spalten und summiert die Werte für jede Gruppe?
Gruppieren von mehrdimensionalen Array-Daten nach zwei Spalten und Summieren von Werten für jede Gruppe
Stellen Sie sich ein Array vor, das durch die Kombination von Ergebnissen aus zwei separaten Datenbankabfragen erstellt wurde. Dies ähnelt dem Folgenden:
$arr1 = [ ['part' => '1', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'ccc', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'ccc', 'type' => '2', 'count' => 5] ];
Das Ziel besteht darin, dieses Array nach „Teil“- und „Typ“-Spalten zu gruppieren und die Summe der „Anzahl“-Werte für jede Gruppe zu berechnen.
Um dies zu erreichen Dazu können wir die folgende Funktion nutzen:
<code class="php">function groupByPartAndType($input) { $output = Array(); foreach($input as $value) { $output_element = &$output[$value['part'] . "_" . $value['type']]; $output_element['part'] = $value['part']; $output_element['type'] = $value['type']; !isset($output_element['count']) && $output_element['count'] = 0; $output_element['count'] += $value['count']; } return array_values($output); }</code>
Diese Funktion durchläuft das Eingabearray und füllt ein Ausgabearray mit Elementen, die durch die Kombination der Werte „Teil“ und „Typ“ verschlüsselt sind. Für jedes Ausgabeelement werden die Felder „Teil“, „Typ“ und „Anzahl“ entsprechend festgelegt, um sicherzustellen, dass das Feld „Anzahl“ auf Null initialisiert wird, sofern es nicht bereits festgelegt ist. Die Funktion gibt ein Array der Werte aus dem Ausgabearray zurück.
Durch die Anwendung dieser Funktion auf $arr1 erhalten wir das gewünschte Ergebnis:
$arr2 = [ ['part' => '1', 'type' => '1', 'count' => 15], ['part' => '2', 'type' => '1', 'count' => 10], ['part' => '2', 'type' => '2', 'count' => 5] ];
Das obige ist der detaillierte Inhalt vonWie gruppiert man ein mehrdimensionales Array nach zwei Spalten und summiert die Werte für jede Gruppe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!