列ごとに 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 サイトの他の関連記事を参照してください。