【问题标题】:How to decode foreach value of array stored in database如何解码存储在数据库中的数组的foreach值
【发布时间】:2020-06-21 16:18:42
【问题描述】:

这是print_r($query->getResult())

Array ( [0] => stdClass Object ( [id] => 9
                                 [user_id] =>
                                 [title] =>
                                 [message] => [{"title":"Nice","option":"Text 1"},{"title":"nice 2","option":"text 2"},{"title":"nice 3","option":"text 3"}]
                                 [created_at] => 2020-06-21 16:59:49
               )
)

我正在尝试使用:

$query = $db->query("SELECT * from user_msg");

foreach (json_decode($query->getResult()) as $key => $additional_field) {
 
echo $additional_field->title;

}

但不幸的是我收到了这个错误:

json_decode() 期望参数 1 是字符串,给定数组

【问题讨论】:

  • getResult() 可能返回一个行数组,您需要循环并解码正确的列。
  • 请详细说明这一点

标签: php arrays foreach decode codeigniter-4


【解决方案1】:

我不知道CodeIgnitor,但是根据结果数组和JSON,你需要做这样的事情:

foreach ($query->getResult() as $row) {
    foreach(json_decode($row->message) as $msg) {
        echo $msg->title;
    }   
}

循环结果中的每一行,解码message并循环得到titles。

【讨论】:

  • 打印的准确位置在哪里?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
相关资源
最近更新 更多