Задать вопрос

Почему ошибка Cannot use object of type stdClass as array in?

$tr = Array ( [0] => stdClass Object ( [account] => 265388630323288 [category] => move [time] => 1423668673 [amount] => -0.00455848 [otheraccount] => 2309 [comment] => ) [1] => stdClass Object ( [account] =>  265388630323288 [category] => move [time] => 1423668673 [amount] => -0.00455848 [otheraccount] => 2309 [comment] => )  )


Выполняю

<?php foreach($tr as $t) : ?>

 <?php switch( $t['category'] ) {

...............


Выдает ошибку PHP Fatal error: Cannot use object of type stdClass as array in

Если делаю так
$items = json_decode($tr , true); или $items = json_decode($tr);

Получаю json_decode() expects parameter 1 to be string, array given in
  • Вопрос задан
  • 44325 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
Потому что $t - это объект, и вместо $t['category'] нужно использовать $t->category

Это же элементарщина, да и ошибка предельно ясно говорит в чем проблема.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
rework
@rework
Помог ответ? В благодарность отметь его решением
Если вы делаете так:
$items = json_decode($tr , true);

то ваш код должен корректно работать, так как второй аргумент функции json_decode, как раз и отвечает за, то что переданный json будет преобразован в ассоциативный массив, а не в объект.
Ответ написан
Комментировать
@killerdr
$items = json_decode(json_encode($items),true);
и проблема решится.
оставлю тут для будущих искателей решения такого недоразумения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽