Heim >Backend-Entwicklung >PHP-Tutorial >Wie gruppiere ich 2D-Array-Zeilen nach einer einzelnen Spalte und aggregiere eine andere Spalte in PHP?
Bei einem PHP-Array, das 2D-Zeilen mit bestimmten Spalten enthält, besteht eine häufige Aufgabe darin, die Zeilen basierend zu gruppieren auf einer bestimmten Spalte und aggregieren Sie die Werte aus einer anderen Spalte.
Betrachten Sie beispielsweise das folgende Array:
<code class="php">[ ['url_id' => 2191238, 'time_spent' => 41], ['url_id' => 2191606, 'time_spent' => 215], ['url_id' => 2191606, 'time_spent' => 25] ]</code>
Das Ziel besteht darin, die Summe der „time_spent“-Spalte für jede Spalte zu berechnen eindeutiger Wert in der Spalte „url_id“. Eine mögliche Lösung besteht darin, eine Schleife zum Durchlaufen des Arrays zu verwenden:
<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 der Verarbeitung des gesamten Arrays enthält das $ts_by_url-Array die Summe von „time_spent“ für jede eindeutige „url_id“:
<code class="php">2191238 => 41 2191606 => 240 // == 215 + 25</code>
Dieser Ansatz gruppiert die Zeilen effektiv nach „url_id“ und aggregiert die „time_spent“-Werte. Es nutzt die assoziative Array-Natur von PHP, um Werte basierend auf dem Schlüssel „url_id“ effizient zu speichern und zu aktualisieren.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich 2D-Array-Zeilen nach einer einzelnen Spalte und aggregiere eine andere Spalte in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!