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);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
Array ( [2022-10-10] => Array ( [increase] => 13.31 [decrease] => 19 ) [2022-10-09] => Array ( [increase] => 13.64 [decrease] => 17.32 ) [2022-10-08] => Array ( [increase] => 18.44 [decrease] => 19.15 ) [2022-10-07] => Array ( [increase] => 0 [decrease] => 26.24 ) [2022-10-06] => Array ( [increase] => 12.13 [decrease] => 18.31 ) [2022-10-05] => Array ( [increase] => 13.39 [decrease] => 19.48 ) [2022-10-04] => Array ( [increase] => 11.2 [decrease] => 11.36 ) [2022-10-03] => Array ( [increase] => 11.82 [decrease] => 12.91 ) [2022-10-02] => Array ( [increase] => 14.03 [decrease] => 11.55 ) )

preferences:
82.05 ms | 409 KiB | 5 Q