首頁  >  文章  >  後端開發  >  如何按列對二維數組中的資料進行分組和求和?

如何按列對二維數組中的資料進行分組和求和?

Patricia Arquette
Patricia Arquette原創
2024-11-09 03:26:02110瀏覽

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

對2D 陣列中的資料進行分組和求和

在此場景中,您的目標是根據特定的值對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'],
];

實作:

要實現這一點,請遵循這些步驟:

  1. 迭代輸入陣列的行。
  2. 對於每一行:

    • 檢查分組陣列是否包含索引為的條目目前行的 'dd' 值。
    • 如果沒有,則使用 'dd' 值建立一個條目初始「數量」為 0。
    • 將分組數組條目的「數量」值增加目前行的「數量」。
  3. 轉換分組陣列使用 array_values() 轉換為數字索引陣列。

以下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);

這個方法有效地按「dd」列對輸入資料進行分組,並對每個群組的「quantity ”列值求和,產生所需的輸出。

以上是如何按列對二維數組中的資料進行分組和求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn