Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere ich Zeilen in einem 2D-Array nach einer Spalte und summiere eine andere Spalte in PHP?

Wie gruppiere ich Zeilen in einem 2D-Array nach einer Spalte und summiere eine andere Spalte in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 09:57:03378Durchsuche

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

2D-Array-Zeilen nach einer Spalte gruppieren und eine andere Spalte summieren

Zum Gruppieren von Zeilen in einem 2D-Array basierend auf einer bestimmten Spalte und Summieren einer anderen Spalte können Sie den folgenden Ansatz verwenden:

Angenommen, wir haben ein Array wie dieses:

<code class="php">[
    ['url_id' => 2191238, 'time_spent' => 41],
    ['url_id' => 2191606, 'time_spent' => 215],
    ['url_id' => 2191606, 'time_spent' => 25]
]</code>

Um die Summe der time_spent-Werte für jede eindeutige url_id zu berechnen, können wir das folgende PHP verwenden Code:

<code class="php">$ts_by_url = array();
foreach($array as $data) {
    if(!array_key_exists($data['url_id'], $ts_by_url))
        $ts_by_url[ $data['url_id'] ] = 0;
    $ts_by_url[ $data['url_id'] ] += $data['time_spent'];
}</code>

In diesem Code durchlaufen wir das Array und erstellen ein Array ($ts_by_url), das durch url_id indiziert wird. Für jedes Datenelement in der Schleife prüfen wir, ob seine URL-ID in $ts_by_url vorhanden ist. Ist dies nicht der Fall, setzen wir seinen Wert auf 0. Anschließend erhöhen wir den time_spent-Wert um den time_spent im aktuellen Datenelement.

Nach Abschluss der Schleife enthält $ts_by_url die gewünschten Ergebnisse:

2191238 => 41
2191606 => 240 // == 215 + 25

Das obige ist der detaillierte Inhalt vonWie gruppiere ich Zeilen in einem 2D-Array nach einer Spalte und summiere eine andere Spalte 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