I have table expense_incomes, the structure for table is:
| id | type | amount | date |
|----------------------------------------|
| 1 | Expense | 100 | 2021-04-02 |
| 2 | Expense | 150 | 2021-04-02 |
| 3 | Expense | 150 | 2021-04-03 |
| 4 | Income | 500 | 2021-04-04 |
| 5 | Expense | 250 | 2021-04-04 |
|----------------------------------------|
I want the sum of expenses and incomes in two different arrays groupBy date.
I have tried this code. (In the above Example) I want to push expense into expense_array and income into income_array for 2021-04-02.
$record_by_date = DB::select("SELECT SUM(amount) as 'amount', cast(date as date) dateAdded, type as 'type' FROM expense_incomes GROUP BY cast(date as date), type");
$expenses_array = array();
$incomes_array = array();
$date_array = array();
foreach($record_by_date as $record)
{
if($record->type == 'Expense') {
array_push($expenses_array, $record->amount);
array_push($incomes_array, 0);
} elseif($record->type == 'Income') {
array_push($incomes_array, $record->amount);
array_push($expenses_array, 0);
}
array_push($date_array, $record->dateAdded);
}
What I am getting now:
$expenses_array = [250, 150, 0, 250];
$incomes_array = [0, 0, 500, 0];
$date_array = [2021-04-02, 2021-04-03, 2021-04-04, 2021-04-04];
Expected Array Structure:
$expenses_array = [250, 150, 250];
$incomes_array = [0, 0, 500];
$date_array = [2021-04-02, 2021-04-03, 2021-04-04];