массив php не суммирует числа

почему этот код не суммирует мои потраченные часы для каждого пользователя?

while ($row = $result->fetch_assoc())
{
$total_spent_time += $row['spent_time'];

if (!array_key_exists($row['activity_type'], $data))
{
$data[$row['activity_type']] = array(
'spent_time' => array('user' => array())
);

$data[$row['activity_type']]['spent_time']['user'][$row['user']] = array('time' => $row['spent_time']);

if (array_key_exists($row['user'], $data[$row['activity_type']]['spent_time']['user']))
{
$data[$row['activity_type']]['spent_time']['user'][$row['user']]['time'] += $row['spent_time'];
}
}

Это дает мне только последнее значение строки.

0

Решение

Попробуйте объявить счетчик перед циклом:

$total_spent_time = 0;
while ($row = $result->fetch_assoc()) {
$total_spent_time += $row['spent_time'];
}
echo $total_spent_time;
0

Другие решения

Вы делаете что-то не так, где нам нужно больше деталей о запросе и наборе результатов.
Вы не используете $ total_spent_time нигде в распределении массива.

$data[$row['activity_type']]['spent_time']['user'][$row['user']] = array('time' => $row['spent_time']);

поскольку вы используете только $ row [‘lost_time’], и поскольку второго цикла нет, если оператор выполняется только один раз для пользователя ($ row [‘user’])
Вот почему вы получаете только 1 значение.

0

По вопросам рекламы [email protected]