Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere und summiere ich Spalten in einem 2D-PHP-Array?

Wie gruppiere und summiere ich Spalten in einem 2D-PHP-Array?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 04:06:27551Durchsuche

How to Group and Sum Columns in a 2D PHP Array?

Spalten in einem 2D-Array gruppieren und summieren

Die Aufgabe besteht darin, ein PHP-Datenarray zu verarbeiten, wobei jedes Element eine Zeile darstellt. und jede Zeile besteht aus zwei Spalten: url_id und time_spent. Das Ziel besteht darin, die Zeilen nach der Spalte „url_id“ zu gruppieren und die Werte in der Spalte „time_spent“ für jede Gruppe zu summieren.

Lösung:

Wir können PHPs array_count_values() verwenden Funktion, um dies zu erreichen:

<code class="php">$ts_by_url = array_count_values(array_column($array, 'url_id'));</code>

Die Funktion array_column() extrahiert die Spalte url_id aus dem Eingabearray und erzeugt ein Array von url_id-Werten. Die Funktion array_count_values() zählt dann die Vorkommen jedes url_id-Werts und gruppiert so effektiv die Zeilen.

Diese Lösung liefert jedoch nur eine Zählung der Vorkommen für jede url_id. Um die time_spent-Werte innerhalb jeder Gruppe zu summieren, müssen wir den Ansatz ändern:

<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 aktualisierten Ansatz pflegen wir ein Array $ts_by_url, das die Summe der time_spent-Werte für jede url_id enthält. Wir durchlaufen das Eingabearray und prüfen für jede Zeile, ob die entsprechende url_id bereits in $ts_by_url vorhanden ist. Wenn nicht, initialisieren wir es mit einem Wert von 0. Unabhängig davon fügen wir den time_spent-Wert zum entsprechenden url_id-Eintrag in $ts_by_url hinzu.

Dieser Ansatz ermöglicht es uns, die Zeilen nach url_id zu gruppieren und die time_spent-Werte für zu summieren jede Gruppe. Das resultierende $ts_by_url-Array enthält die gewünschten Summen, verschlüsselt durch url_id.

Das obige ist der detaillierte Inhalt vonWie gruppiere und summiere ich Spalten in einem 2D-PHP-Array?. 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