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

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

Patricia Arquette
Patricia Arquette原創
2024-11-09 09:15:02885瀏覽

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

按列對二維數組資料進行分組和求和

在此程式設計場景中,目標是按一列對二維數組的行進行分組值(例如“dd”),然後將每組內另一列(“數量”)的值加總。結果是一個具有唯一“dd”值和聚合數量資訊的簡化二維數組。

範例:

考慮以下輸入陣列:

[
    ['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 的解決方案:
// 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 的內建陣列和循環功能:

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

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