Группируйте данные таблицы базы данных по дате и суммируйте другие столбцы.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Группируйте данные таблицы базы данных по дате и суммируйте другие столбцы.

Сообщение Anonymous »

У меня есть данные базы данных, например:
date, storage, bandwidth, cost

Я могу иметь такие записи, как:
2013-10-24, 1, 0, 0.55;
2013-10-25, 1, 0, 0.50;
2013-10-25, 1, 0, 0.25;
2013-10-25, 0, 1, 0.50;

Я беру данные из базы данных и делаю foreach. У меня получится конечно 4 ряда. Мне нужно будет сгруппировать данные следующим образом:
Это означает, что 24 октября 2013 г. у меня была стоимость хранения 0,55.
А 25 октября 2013 г. у меня была стоимость хранения. 0,75 и стоимость полосы пропускания 0,50.
Я создал функцию:

публичная функция sortCostByDay($array, $key)
{
$return = array();
foreach($array as $v)
{
$storage = $bandwidth = $total = 0;

if($v['storage'] == 1)
{
$storage += $v['cost'];
$total += $storage; if($v['bandwidth'] == 1)
{
$bandwidth += $v['cost'];
$total += $bandwidth;

$return[$v[$key]][] = array('storage' => $storage, 'bandwidth' => $bandwidth, 'total' => $total);
}

return $return;

Это сгруппирует мой первоначальный массив по $ключ. Ключ $ — это дата.
В итоге у меня получается следующее:
'2013-10-24' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=3)
0 =>
array (size=3)
'storage' => 0.50
'bandwidth' => 0
'total' => 0.50
1 =>
array (size=3)
'storage' => 0.25
'bandwidth' => 0
'total' => 0.50
2 =>
array (size=3)
'storage' => 0
'bandwidth' => 0.50
'total' => 1

Не могу понять, как сделать что-то вроде:
'2013-10-24' =>
array (size=1)
0 =>
array (size=1)
'storage' => 0.55
'bandwidth' => 0
'total' => 0.55
'2013-10-25' =>
array (size=1)
0 =>
array (size=3)
'storage' => 0.75
'bandwidth' => 0.50
'total' => 1.25


Подробнее здесь: https://stackoverflow.com/questions/193 ... er-columns
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»