按列將二維數組行資料分組並對另一列求和
在分析表格資料時,經常需要根據共享資料來合併行特定列中的值,同時對其他資料列執行計算。輸入對 2D 數組行進行分組並對不同列中的值求和的挑戰。
問題陳述:
您將獲得一個 2D 數組,其中每行代表一個資料條目。目標是按指定的分組列(例如「dd」)對這些行進行分組,並對每組內另一列(例如「quantity」)的值求和。結果應該是一個簡化的二維數組,具有唯一的分組值和相應的求和列值。
範例:
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數組作為所需的結果。
以上是如何按列將二維數組中的行分組並對另一列求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!