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

PHP で 2D 配列の行を列ごとにグループ化し、別の列を合計する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 09:57:03378ブラウズ

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

列ごとに 2D 配列の行をグループ化し、別の列を合計する

特定の列に基づいて 2D 配列の行をグループ化し、別の列を合計するには

次のような配列があるとします。

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

一意の url_id ごとに time_spent 値の合計を計算するには、次の PHP を使用できます。 code:

<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>

このコードでは、配列をループし、url_id でインデックス付けされた配列 ($ts_by_url) を作成します。ループ内の各データ項目について、その url_id が $ts_by_url に存在するかどうかを確認します。そうでない場合は、その値を 0 に設定します。次に、現在のデータ項目の time_spent だけ time_spent 値を増分します。

ループが終了すると、$ts_by_url には目的の結果が含まれます。

2191238 => 41
2191606 => 240 // == 215 + 25

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

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