Переменные - это не что иное, как зарезервированные ячейки памяти для хранения значений. Это означает, что при создании переменной вы сохраняете некоторое пространство в памяти.
Основываясь на типе данных переменной, интерпретатор выделяет память и решает, что можно сохранить в зарезервированной памяти. Поэтому, присваивая переменным разные типы данных, вы можете хранить целые числа, десятичные знаки или символы в этих переменных.
Назначение значений для переменных
Переменные Python не нуждаются в явном объявлении в резервную память пространство. Объявление присваивается автоматически, когда вы присваиваете значение переменной. Знак равенства (=) используется для назначения значений переменным.
Вы можете сделать что-то вроде этого:
$accumulatedMonthly = DB::table('sold_tickets')
->select('price', 'created_at')
->where('event_id', $id)
->where('credited', null)
->where('user_id', '!=', null)
->orderBy('created_at')
->get();
$accumulatedPerMonth = array();
foreach ($accumulatedMonthly as $key => $value)
{
if(array_key_exists(date('M y', strtotime($value->created_at)), $accumulatedPerMonth))
{
$accumulatedPerMonth[date('M y', strtotime($value->created_at))] += $value->price;
}
else
{
$accumulatedPerMonth[date('M y', strtotime($value->created_at))] = $value->price;
}
}
попробуйте метод сбора данных, у вас будет массив данных.
Обновление Я изменил запрос.
$accumulatedMonthly = DB::table('sold_tickets')
->select(DB::raw('SUM("price") as price'), DB::raw("date_format('created_at','%M %y') as month"))
->where('event_id', $id)
->where('credited', null)
->where('user_id', '!=', null)
->orderBy('created_at')
->get()
->groupBy(DB::raw("date_format('created_at','%M %y')"))->pluck('price','month');
Измените
foreach ($accumulatedMonthly as $k => $month) {
foreach ($month as $m) {
$accumulatedPerMonth[$k] = $m['price'];
}
}
на:
foreach ($accumulatedMonthly as $k => $month) {
$accumulatedPerMonth[$k] = 0;
foreach ($month as $m) {
$accumulatedPerMonth[$k] += $m['price'];
}
}
, чтобы получить сумму всех цен.