PHP迭代数组 - 无法达到顶级值?

时间:2015-07-19 10:14:16

标签: json loops foreach iterator iteration

我尝试长时间搜索并难以找到我的答案,如果我能帮助它,几乎从不提问。但现在是凌晨5点,我已经在这个项目上工作了好几个月而且我被卡住了。

THE PROBLEM

我的本​​地服务器上保存了一个JSON文件,其格式如下:

*注意我已经删除了JSON文件以消除膨胀,并专注于我想要在这里提取的内容。

{
"count": 74,
"results": [
    {
        "listing_id": 151323205,
          "Images": [
            {
                "url_75x75": "https:\/\/img1.etsystatic.com\/013\/0\/7566894\/il_75x75.459599049_hptl.jpg",
            },

        ]
    }
],
"params": {
    "limit": "1",
    "shop_id": "username",
},

}

THE CODE

现在我已经设法迭代所有其他内容,例如'listing_id'和& '图像'但似乎'shop_id'超出了我的foreach命令范围和'params'部分的范围?

            foreach($results->results as $product){

                    $products[$i]['url_75x75']      = $product->Images[0]->url_75x75;

                $i++;
            }

我不是超级PHP精明所以如果你可以稍微愚蠢一点?对你们来说这可能是非常简单的事情,我想知道我做错了什么以及如何正确行事。

这不是我所说的完整代码,如果您需要更多见解,请询问。我不想用一堆键盘拍打编码技能来轰炸人们:)

非常感谢你!我爱你!

3 个答案:

答案 0 :(得分:1)

您应该可以使用以下代码获取商店ID:

$shop_id = $results->params->shop_id;

如果你愿意,可以在foreach循环中使用它(虽然它的值当然不会改变)。

答案 1 :(得分:0)

$results可能是您的整个对象,其中包含JSON中的所有数据。 $results->results仅读取"结果"部分在JSON中,所以循环只迭代在那里。

要阅读商店ID,您可以阅读:

echo $results->params->shop_id;

答案 2 :(得分:0)

Params与结果处于同一级别,因此在您查看$ results->结果的每个地方,您不包括params,您可以为每个人设置嵌套

Foreach ($results as $result) {
    Foreach ($result->results){}
    Foreach ($result->params){}
}