Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 21.03.2015 15:16:35

Александр

Проблема "Cannot use a scalar value as an array" при работе с массивом

Добрый день! Помогите пожалуйста разобраться.
В цикле перебираю массив результатов от запроса и формирую свой массив с заданной структурой.
В результате много однотипных данных вроде id,date, у кортежей с одинаковыми id и date много разных значений sum, поэтому складываю их таким образом:

$res = $db->query($qry, PDO::FETCH_ASSOC);
foreach ($res as $row) {    
    $chart[$id]['message'][$date]=$row['message'];
    $chart[$id]['allsum'][$date]+=$row['sum'];	// Тут получаю ошибку:  Undefined index: 'allsum'	
}	

       
Проверяю возможность заполнения массива:

foreach ($res as $row) {    
    $chart[$id]['message'][$date]=$row['message'];
    $sum+=$row['sum']; //вся сумма в одну переменную
    $chart[$id]['allsum'][$date]=$sum;	// Тут ошибки нет
}

Пробую так:

foreach ($res as $row) {    
    $chart[$id]['message'][$date]=$row['message'];
    $sum[$id][$date]+=$row['sum']; 
    $chart[$id]['allsum'][$date]= $sum[$id][$date];	// Тут получаю ошибку:  Cannot use a scalar value as an array
}

Проверил эту часть в скрипте вне laravel - ошибок не возникает.
Как исправить проблему?

#2 25.06.2015 12:20:25

Re: Проблема "Cannot use a scalar value as an array" при работе с массивом

Какая-то переменная числовая или null, а используется в качестве массива (возможно, $sum ($sum[$id][$date])).
Покажите код, где инициализируются переменные $sum и $chart.

Не в сети

Подвал раздела