Я пытался скопировать этот код:
<?php foreach ($products as $product) { $id = $product['id']; $name = $product['name']; $description = $product['description']; $price = $product['price']; ?> <tr> <td><img src="<?php echo $product['picture']; ?>" /></td> <td><b><?php echo $name; ?></b><br /> <?php echo $description; ?><br /> Price:<big style="color:green"> $<?php echo $price; ?></big><br /><br /> <?php echo form_open('cart/add'); echo form_hidden('id', $id); echo form_hidden('name', $name); echo form_hidden('price', $price); echo form_submit('action', 'Add to Cart'); echo form_close(); ?> </td> </tr> <tr><td colspan="2"><hr size="1" /></td> <?php } ?> 
и вот мой код:
 <?php foreach ($blogs as $blog) { $id = $blog['id']; $title = $blog['title']; $content = $blog['content']; ?> <h1><?php echo $title; ?></h1> <h1> <?php echo $content; ?> </h1> <?php } ?> 
Я получаю эту ошибку каждый раз, когда запускаю свой код: «Нельзя использовать объект типа stdClass as array»
В примере, который вы скопировали, используются данные в виде массива, содержащего массивы, вы используете данные в виде массива, содержащего объекты. Объекты и массивы не совпадают, и из-за этого они используют разные синтаксисы для доступа к данным.
  Если вы не знаете имена переменных, просто выполните var_dump($blog);  в пределах цикла, чтобы увидеть их. 
Простейший метод – прямой доступ к блогу $ как объекту:
Попробуйте (при условии, что эти переменные верны):
 <?php foreach ($blogs as $blog) { $id = $blog->id; $title = $blog->title; $content = $blog->content; ?> <h1> <?php echo $title; ?></h1> <h1> <?php echo $content; ?> </h1> <?php } ?> 
Альтернативный метод – доступ к блогу $ $ как массив:
  Кроме того, вы можете превратить $blog в массив с get_object_vars ( документацией ): 
 <?php foreach($blogs as &$blog) { $blog = get_object_vars($blog); $id = $blog['id']; $title = $blog['title']; $content = $blog['content']; ?> <h1> <?php echo $title; ?></h1> <h1> <?php echo $content; ?> </h1> <?php } ?> 
  Стоит отметить, что это не обязательно будет работать с вложенными объектами, поэтому его жизнеспособность полностью зависит от структуры вашего объекта $blog . 
Лучше, чем любой из вышеперечисленных – встроенный PHP-синтаксис
Сказав все это, если вы хотите использовать PHP в наиболее читаемом виде, ни одно из перечисленных выше не является правильным. При использовании PHP, смешанного с HTML, многие считают, что многие используют альтернативный синтаксис PHP, это уменьшит весь код от девяти до четырех строк:
 <?php foreach($blogs as $blog): ?> <h1><?php echo $blog->title; ?></h1> <p><?php echo $blog->content; ?></p> <?php endforeach; ?> 
Надеюсь, это помогло.
$ blog – объект, а не массив
  попробуйте использовать $blog->id вместо $blog['id'] 
Там могут быть две проблемы
 1) $blogs may be a stdObject 
или
 2) The properties of the array might be the stdObject 
Попробуйте использовать var_dump ($ blogs) и посмотрите фактическую проблему, если в свойствах массива stdObject попробует это сделать
 $blog->id; $blog->content; $blog->title; 
$ blog – это объект, а не массив, поэтому вы должны получить к нему доступ так:
 $blog->id; $blog->title; $blog->content; 
  Доступ к объекту StdClass осуществляется с помощью -> 
 foreach ($blogs as $blog) { $id = $blog->id; $title = $blog->title; $content = $blog->content; } 
Если вы перебираете объект вместо массива, вам нужно получить доступ к свойствам, используя:
 $id = $blog->id; $title = $blog->title; $content = $blog->content; 
Это или изменить объект на массив.