【问题标题】:Illegal string offset in foreach loopforeach 循环中的非法字符串偏移
【发布时间】:2018-06-06 09:14:51
【问题描述】:

当我尝试获取 first_name 时,我正在尝试从 foreach 获取值,但出现类似 ` 的错误

非法字符串偏移 'first_name'

我不明白为什么会出现这个错误。

这是我的代码:

<tbody>
<?php
 $query = $this->db->query("SELECT * FROM ci_sessions WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 MINUTE))");
 $return_data = array();  // array where you put your "BLOB" resolved data
 foreach ($query->result() as $row) {
    $session_data = $row->data;

    $offset = 0;
    while ($offset < strlen($session_data)) {
    if (!strstr(substr($session_data, $offset), "|")) {
       throw new Exception("invalid data, remaining: " . substr($session_data, $offset));
    }
    $pos = strpos($session_data, "|", $offset);
    $num = $pos - $offset;
    $varname = substr($session_data, $offset, $num);
    $offset += $num + 1;
    $data = unserialize(substr($session_data, $offset));
    $return_data[$varname][] = $data;

    $offset += strlen(serialize($data));
  }
}
//var_dump( $return_data['user_name'][0] );

$return_data['user_name'] = array_unique($return_data['user_name']);

print_r($return_data['first_name']);    

foreach ($return_data['user_name'] as $onesession) {?>

<tr>

 <td><?php echo $onesession; ?></td>
 <td><?php echo $onesession['first_name']; ?></td>

  </tr>
 <?php } ?>
 </tbody>

谁能帮助我为什么会出现这个错误。

提前致谢。

【问题讨论】:

  • 这意味着$return_data 或$onesession 不是 数组,因此您不能尝试像数组['...'] 那样访问它。在这种情况下,它是$onesession。 var_dump($onesession); 应该有助于查看里面有什么。
  • 得到这个字符串(5) "admin" 我在使用 var_dump 时得到这个
  • 你能帮我在我的情况下如何获得 first_name @pradeep

标签: php codeigniter


【解决方案1】:

希望对您有所帮助:

由于$result_data是一个单一的数组所以你不能循环它,所以将$return_$data存储到另一个数组中以获得想要的结果

$data[] = $return_data;

你的foreach应该是这样的;

$data[] = $return_data;

/* use below code if [] not supported*/

$data = array();
array_push($data,$return_data);

foreach ($data as $onesession) {?>

 <tr>

 <td><?php echo $onesession['user_name'][0]; ?></td>
 <td><?php echo $onesession['first_name'][0]; ?></td>
  </tr>
 <?php } ?>
 </tbody>

【讨论】:

    猜你喜欢
    • 2013-09-29
    • 2019-03-01
    • 2020-11-29
    • 2017-06-14
    • 2013-02-19
    • 2022-01-24
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多