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

Wie gruppiert und summiert man Array-Daten nach Spalten in PHP?

DDD
DDDOriginal
2024-12-06 13:52:12968Durchsuche

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

Array-Daten in einer Spalte gruppieren und Daten aus einer anderen Spalte summieren, um ein flaches assoziatives Array zu bilden

Problem:

Gruppieren Sie bei einem Array mit Schlüssel-Wert-Paaren Daten basierend auf den Werten einer bestimmten Spalte und summieren Sie Daten aus einer anderen Spalte. Wenn Sie beispielsweise das folgende Array haben:

$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],
];

Lösung:

Um die Daten basierend auf der Spalte „Name“ zu gruppieren und die Daten in der Spalte „Name“ zu summieren Führen Sie in der Spalte „Betrag“ die folgenden Schritte aus:

  1. Initialisieren Sie ein leeres Array mit dem Namen $bankTotals. Dieses Array speichert die gruppierten Daten.
  2. Iterieren Sie das Eingabearray mit einer foreach-Schleife.
  3. Überprüfen Sie für jedes Element im Array, ob das bankTotals-Array bereits einen Schlüssel enthält, der dem Namen entspricht 'Wert des aktuellen Elements.
  4. Wenn das bankTotals-Array keinen Schlüssel enthält, der dem aktuellen 'Name'-Wert entspricht, erstellen Sie einen neuen Schlüssel mit diesem Wert und legen Sie seinen Wert fest auf 0.
  5. Fügen Sie den Betragswert des aktuellen Elements zum entsprechenden Schlüssel im BankTotals-Array hinzu.

Nach der Iteration über das gesamte Eingabearray enthält das $bankTotals-Array den gruppierte Daten mit den Banknamen als Schlüssel und den summierten Beträgen als Werten.

Hier ist der Code, um das Gewünschte zu erreichen Ausgabe:

$bankTotals = array();
foreach($array as $amount)
{
  $bankTotals[$amount['name']] += $amount['amount'];
}

print_r($bankTotals);

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?. 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