user3733831
user3733831

Reputation: 2926

How to fix this `Illegal string offset` error in php?

I have a multidimensional array as below:

$rows[] = $row;

Now I want to create variable from looping this array. This is how I tried it:

foreach ($rows as $k => $value) {
  //echo '<pre>',print_r($value).'</pre>';
  $id    = $value['news_id'];
  $title = $value['news_title'];
  echo $title; 
}

But it produce an error as below:

...... Illegal string offset 'news_id'

This is the output of - echo '<pre>',print_r($value).'</pre>';

Array
(
    [news_id] => 1110
    [news_title] => test
    [news] => test des
)
1

Array
(
    [news_id] => 1109
    [news_title] => ශ්‍රී ලංකාවේ ප්‍රථම....
    [news] => දහසක් බාධක....
)
1

Can anybody tell me what is the wrong I have done?

UPDATE output for echo '<pre>',print_r($rows).'</pre>';

Array
(
  [0] => 
  [1] => Array
      (
          [news_id] => 1110
          [news_title] => test
          [news] => test des
      )

  [2] => Array
      (
          [news_id] => 1109
          [news_title] => ශ්‍රී ලංකාවේ ප්‍රථම....
          [news] => දහසක් බාධක....        
      )

)
1

Upvotes: 1

Views: 23468

Answers (1)

Bilal Ahmed
Bilal Ahmed

Reputation: 4066

use isset function because your 0 index is empty in $row

foreach ($rows as $k => $value) {
  if(isset($value['news_id'])){
    $id    = $value['news_id'];
    $title = $value['news_title'];
    echo $title; 
  }

}

you should add check (condition) when you assign data to $rows

Upvotes: 2

Related Questions