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

PHP で 2D 配列のデータを列ごとにグループ化して合計する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-09 09:15:02886ブラウズ

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

2D 配列データを列ごとにグループ化して合計する

このプログラミング シナリオの目的は、2D 配列の行を 1 つの列ごとにグループ化することです。値 (例: 「dd」) を計算し、その後、各グループ内の別の列の値 (「数量」) を合計します。結果は、一意の 'dd' 値と集約された数量情報を含む縮小 2D 配列です。

例:

次の入力配列を考えてみましょう:

[
    ['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'],
]

望ましい出力配列は次のようになります:

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
]

PHP を使用したソリューション:

このデータ変換を実現するには、PHP の組み込み配列を利用できます。ループ機能:

// Input array
$in = array(array());

// Create output array
$out = array();

// Iterate through input rows
foreach ($in as $row) {
    // Check if 'dd' key exists in output array
    if (!isset($out[$row['dd']])) {
        // Initialize entry for 'dd' with empty quantity
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }

    // Accumulate quantity for 'dd' key
    $out[$row['dd']]['quantity'] += $row['quantity'];
}

// Adjust output array to numerical indexing
$out = array_values($out);

// Display output array
var_dump($out);

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

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