Heim >Backend-Entwicklung >PHP-Tutorial >Wie gruppiere ich 2D-Array-Zeilen nach einer einzelnen Spalte und aggregiere eine andere Spalte in PHP?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 00:19:28564Durchsuche

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

2D-Array-Zeilen nach einer einzelnen Spalte gruppieren und eine weitere Spalte aggregieren

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!

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