Array-Daten nach Spalte gruppieren und eine weitere Spalte für assoziatives Array summieren
Gegebenes Datenarray, z. B.:
$array = [ ['name' => 'Bank BRI', 'amount' => 0], ['name' => 'Bank BRI', 'amount' => 0], ['name' => 'Bank BCA', 'amount' => 1412341234], ['name' => 'Bank CIMB Niaga', 'amount' => 532532552], ['name' => 'Bank BRI', 'amount' => 34534534], ['name' => 'Bank CIMB Niaga', 'amount' => 453425243], ['name' => 'Bank BRI', 'amount' => 0], ['name' => 'Bank BNI', 'amount' => 124124], ['name' => 'Bank CIMB Niaga', 'amount' => 352345623], ['name' => 'Bank BCA', 'amount' => 23432423], ['name' => 'Bank Mandiri', 'amount' => 0], ['name' => 'Bank BCA', 'amount' => 0], ['name' => 'Bank BCA', 'amount' => 0], ['name' => 'Bank Permata', 'amount' => 352352353], ];
Das Ziel besteht darin, die Daten basierend auf der Spalte „Name“ zu gruppieren und die Werte „Betrag“ innerhalb jeder Gruppe zu summieren, um eine flache Assoziative zu bilden Array. Die erwartete Ausgabe ist:
array ( 'Bank BRI' => 34534534, 'Bank BCA' => 1435773657, 'Bank CIMB Niaga' => 1338303418, 'Bank BNI' => 124124, 'Bank Mandiri' => 0, 'Bank Permata' => 352352353, )
Lösung:
$bankTotals = array(); foreach ($array as $amount) { $bankTotals[$amount['name']] += $amount['amount']; }
Dieser Code initialisiert ein leeres Array namens $bankTotals. Anschließend wird das Eingabearray durchlaufen und auf jedes Unterarray zugegriffen, das eine Datenzeile darstellt. Für jede Zeile wird der Wert „amount“ zum entsprechenden Schlüssel „name“ im Array $bankTotals hinzugefügt. Dieser Prozess gruppiert Zeilen effektiv nach „Name“ und summiert die „Betrag“-Werte entsprechend.
Ausgabe:
array ( 'Bank BRI' => 34534534, 'Bank BCA' => 1435773657, 'Bank CIMB Niaga' => 1338303418, 'Bank BNI' => 124124, 'Bank Mandiri' => 0, 'Bank Permata' => 352352353, )
Das obige ist der detaillierte Inhalt vonWie gruppiert und summiert man Array-Daten nach Spalten in PHP, um ein assoziatives Array zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!