3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['amount' => 13.31000000, 'i' => 1, 'created_at' => '2022-10-10 23:21:47',], ['amount' => 19.00000000, 'i' => 2, 'created_at' => '2022-10-10 23:21:38',], ['amount' => 17.32000000, 'i' => 2, 'created_at' => '2022-10-09 23:21:47',], ['amount' => 19.15000000, 'i' => 2, 'created_at' => '2022-10-08 23:21:47',], ['amount' => 14.68000000, 'i' => 2, 'created_at' => '2022-10-07 23:21:47',], ['amount' => 18.31000000, 'i' => 2, 'created_at' => '2022-10-06 23:21:47',], ['amount' => 19.48000000, 'i' => 2, 'created_at' => '2022-10-05 23:21:47',], ['amount' => 11.20000000, 'i' => 1, 'created_at' => '2022-10-04 23:21:47',], ['amount' => 12.91000000, 'i' => 2, 'created_at' => '2022-10-03 23:21:47',], ['amount' => 11.55000000, 'i' => 2, 'created_at' => '2022-10-02 23:21:47',], ['amount' => 13.64000000, 'i' => 1, 'created_at' => '2022-10-09 23:21:38',], ['amount' => 18.44000000, 'i' => 1, 'created_at' => '2022-10-08 23:21:38',], ['amount' => 11.56000000, 'i' => 2, 'created_at' => '2022-10-07 23:21:38',], ['amount' => 12.13000000, 'i' => 1, 'created_at' => '2022-10-06 23:21:38',], ['amount' => 13.39000000, 'i' => 1, 'created_at' => '2022-10-05 23:21:38',], ['amount' => 11.36000000, 'i' => 2, 'created_at' => '2022-10-04 23:21:38',], ['amount' => 11.82000000, 'i' => 1, 'created_at' => '2022-10-03 23:21:38',], ['amount' => 14.03000000, 'i' => 1, 'created_at' => '2022-10-02 23:21:38',], ]; const LOOKUP = [1 => 'increase', 2 => 'decrease']; $defaults = array_fill_keys(LOOKUP, 0); $result = []; foreach ($array as $row) { $date = substr($row['created_at'], 0, 10); $result[$date] ??= $defaults; $result[$date][LOOKUP[$row['i']]] += $row['amount']; } print_r($result);

preferences:
23.12 ms | 406 KiB | 5 Q