如何將二維 PHP 數組中的列進行分組和求和?

Linda Hamilton
發布: 2024-10-26 04:06:27
原創
549 人瀏覽過

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

將二維數組中的列進行分組和求和

任務是處理PHP 資料數組,其中每個元素代表一行,每行由兩個欄位組成:url_id 和time_spent。目標是按 url_id 列對行進行分組,並對每組的 time_spent 列中的值求和。

解決方案:

我們可以使用PHP 的array_count_values()函數來實現此目的:

<code class="php">$ts_by_url = array_count_values(array_column($array, 'url_id'));</code>
登入後複製

array_column() 函數從輸入數組中提取url_id 列,產生url_id 值的數組。然後,array_count_values() 函數會對每個 url_id 值的出現次數進行計數,從而有效地將資料行分組。

但是,此解決方案僅提供每個 url_id 的出現次數。為了對每個群組中的time_spent 值求和,我們需要修改方法:

<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>
登入後複製

在這個更新的方法中,我們維護一個數組$ts_by_url ,它將保存每個url_id 的time_spent 值的總和。我們迭代輸入數組,檢查每一行對應的 url_id 是否已存在於 $ts_by_url 中。如果沒有,我們將其初始化為 0。無論如何,我們將 time_spent 值新增至 $ts_by_url 中對應的 url_id 條目。

這種方法允許我們按 url_id 對行進行分組,並對 time_spent 值求和每組。產生的 $ts_by_url 陣列將包含所需的總和,以 url_id 為鍵。

以上是如何將二維 PHP 數組中的列進行分組和求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!