首页 > 解决方案 > 如何修复 php 中的“非法字符串偏移”错误?

问题描述

我有一个多维数组,如下所示:

$rows[] = $row;

现在我想通过循环这个数组来创建变量。这就是我尝试的方式:

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

但它会产生如下错误:

......非法字符串偏移'news_id'

这是 -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

谁能告诉我我做错了什么?

更新 输出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

标签: php

解决方案


使用isset函数,因为你的 0 索引是空的$row

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

}

当您将数据分配给时,您应该添加检查(条件)$rows


推荐阅读