2D 配列行データを列ごとにグループ化し、別の列を合計する
表形式データを分析する場合、共有データに基づいて行を統合することが必要になることがよくあります。他の列で計算を実行しながら、特定の列の値を計算できます。 2D 配列の行をグループ化し、別の列の値を合計するという課題に挑戦してください。
問題文:
各行がデータ エントリを表す 2D 配列が与えられます。 。目標は、指定したグループ化列 (「dd」など) によってこれらの行をグループ化し、各グループ内の別の列 (「数量」など) の値を合計することです。結果は、一意のグループ化値と対応する合計列値を含む縮小 2D 配列になります。
例:
Input: [ ['quantity' => 5, 'dd' => '01-Nov-2012'], ['quantity' => 10, 'dd' => '01-Nov-2012'], ['quantity' => 3, 'dd' => '02-Nov-2012'], ['quantity' => 4, 'dd' => '03-Nov-2012'], ['quantity' => 15, 'dd' => '03-Nov-2012'], ]; Desired result: [ ['quantity' => 15, 'dd' => '01-Nov-2012'], ['quantity' => 3, 'dd' => '02-Nov-2012'], ['quantity' => 19, 'dd' => '03-Nov-2012'], ];
解決策:
この問題に取り組むには、次の手順に従います。
PHP での実装例を次に示します。
$in = array(array()); // your input $out = array(); foreach ($in as $row) { if (!isset($out[$row['dd']])) { $out[$row['dd']] = array( 'dd' => $row['dd'], 'quantity' => 0, ); } $out[$row['dd']]['quantity'] += $row['quantity']; } $out = array_values($out); // make the out array numerically indexed var_dump($out);
このソリューションは、指定された列ごとに行を効率的にグループ化し、各グループ内の列値を蓄積し、縮小された 2D を生成します。配列を目的の結果として返します。
以上が2D 配列内の行を列ごとにグループ化し、別の列を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。