代码之家  ›  专栏  ›  技术社区  ›  Virginus Alajekwu

如何解码数据库中存储的数组的foreache值

  •  0
  • Virginus Alajekwu  · 技术社区  · 5 年前

    这就是 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为字符串,给定数组

    1 回复  |  直到 5 年前
        1
  •  0
  •   AbraCadaver    5 年前

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

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

    循环结果中的每一行,解码 message 然后循环它以获得 title s

    推荐文章