ホームページ  >  記事  >  バックエンド開発  >  PHP で 2D 配列の行を 1 つの列でグループ化し、別の列を集計する方法

PHP で 2D 配列の行を 1 つの列でグループ化し、別の列を集計する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 00:19:28481ブラウズ

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

単一列による 2D 配列行のグループ化と別の列の集計

特定の列を含む 2D 行を含む PHP 配列が与えられた場合、一般的なタスクは、行をグループ化することです。特定の列の値を集計し、別の列の値を集計します。

たとえば、次の配列について考えてみます。

<code class="php">[
    ['url_id' => 2191238, 'time_spent' => 41],
    ['url_id' => 2191606, 'time_spent' => 215],
    ['url_id' => 2191606, 'time_spent' => 25]
]</code>

目的は、それぞれの「time_spent」列の合計を計算することです。 「url_id」列の一意の値。考えられる解決策の 1 つは、ループを使用して配列を反復処理することです:

<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」の合計が含まれます:

<code class="php">2191238 => 41
2191606 => 240 // == 215 + 25</code>

このアプローチでは、行を「url_id」で効果的にグループ化し、「time_spent」値を集計します。 PHP の連想配列の性質を利用して、「url_id」キーに基づいて値を効率的に保存および更新します。

以上がPHP で 2D 配列の行を 1 つの列でグループ化し、別の列を集計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。