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

Linda Hamilton
Freigeben: 2024-10-26 04:06:27
Original
549 Leute haben es durchsucht

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

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

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!