Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2024-10-26 09:57:03
Original
521 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage