首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编解码器中的json编解码阵列

编解码器中的json编解码阵列
EN

Stack Overflow用户
提问于 2013-07-29 11:04:29
回答 2查看 8.4K关注 0票数 2

我在用代码点火器做我的项目。我的问题是,我将以json格式存储'game_aspect_details'的值,如

"{"game_aspect_details":[{"aspect_id":"1"},{"aspect_id":"4"}]}"

对于这个select查询,我将解码json格式,并在foreach中检查该值。

代码语言:javascript
复制
    $this->db->select('game_aspect_details');
    $this->db->from('share_reviews');
    $this->db->where('review_id',6);
    $query = $this->db->get();
    $result = $query->result();
    $test = $result[0]->game_aspect_details;
    $res = json_decode($test);
    $result_array = array();        
    foreach ($res as $row)
    {            
        $this->db->select('comments');
        $this->db->from('review_ratings');
        $this->db->where('game_aspect_id',$row->game_aspect_details); //here i need
        $query1 = $this->db->get();                            to check 1 and 4 
        $resultReviews['comments'] = $query1->result();
        $result_array[] = $resultReviews;

    }
    print_r($res);
    exit;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 11:15:40

首先,这将通过使用$row查看foreach中的print_r()

我希望你需要替换下面的一行

代码语言:javascript
复制
$this->db->where('game_aspect_id',$row->game_aspect_details);

行如下:

代码语言:javascript
复制
$this->db->where('game_aspect_id',$row['aspect_id']);

因为$row是数组,而不是对象。

编辑:

代码语言:javascript
复制
foreach ($res as $rows)
{            
    foreach ($rows as $row)
    {            
    ........
    $this->db->where('game_aspect_id',$row['aspect_id']); //here make change
    .....
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-07-29 11:27:43

您做错了一些事情,请参阅下面代码中的注释:

代码语言:javascript
复制
...
//$test = $result[0]->game_aspect_details; // This does not work since $result is not decoded yet
$res = json_decode($result); // Changed to `$result` instead of `$test`
$res = $res->game_aspect_details; // Instead pick the `game_aspect_details` here, after the decode
$result_array = array();        
foreach ($res as $row)
{            
    $this->db->select('comments');
    $this->db->from('review_ratings');
    $this->db->where('game_aspect_id',$row['aspect_id']); // Changed to `aspect_id`
    $query1 = $this->db->get();
    $resultReviews['comments'] = $query1->result();
    $result_array[] = $resultReviews;
}
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17922398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档