访问JSON对象中的数组时出错

时间:2015-12-13 05:25:17

标签: php arrays json curl

我一直在寻找解决此问题的方法,但我尝试的所有内容都会返回相同的错误。

致命错误:无法使用stdClass类型的对象作为数组

这是我尝试使用PHP cURL访问的JSON资源: https://www.easports.com/iframe/fifa16proclubs/api/platforms/PS4/clubs/36881/members

我遇到的问题是访问原始数组。我已经成功地使用以下代码和对象,但是当涉及到数组时我总是遇到麻烦。

public function readBlog($url)
{
    $q = $this->db->get_where('blog',array('blog_url'=>$url));

    if($q->num_rows() > 0)
    {
        foreach ($q->result() as $item)
        {
            $val = $item->blog_read;
            $val = $val+1;

            $data = array('blog_read'=>$val);

            $this->db->where('blog_url',$url);
            $this->db->update('blog',$data);
        }
    }
}

public function getBlog($url)
{   
    $this->readBlog($url);
    $q = $this->db->get_where('blog',array('blog_url'=>$url));

    if($q->num_rows() > 0)
    {
        foreach ($q->result() as $item)
        {
            $data[] = $item;
        }
        return $data;
    }
}

我知道这不是访问数组的正确方法,这是我需要帮助的。我希望能够访问原始数组,然后遍历数组中的所有对象。我已经查看了许多代码示例,但似乎没有任何代码适用于我的场景。

以上代码适用于此资源: http://www.easports.com/iframe/fifa16proclubs/api/platforms/PS4/clubsComplete/United

只是因为我访问了嵌套对象而且没有涉及数组[]。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

似乎foreach循环需要在$phpObj->raw中的第一个(也是唯一的)数组上运行。

您需要将foreach更改为:

foreach ($object[0] as $obj)