PHP 遍历数组 - 无法达到顶级值?

PHP iterating through array - Can't reach top level values?

我尝试长时间搜索以找到我的答案,如果我能帮忙,我几乎从不问问题。但现在是凌晨 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' 和 'Images',但 'shop_id' 似乎超出了我的 foreach 命令的范围,并且在'params' 份?

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

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

                $i++;
            }

我不是超级 PHP 精明所以如果你能把它简化一点吗?这对你们来说可能是一件非常简单的事情,我想知道我做错了什么以及如何做对。

这不是我所说的完整代码,所以如果您需要更多信息,请询问。我不想用我的一堆敲击键盘的编码技巧来轰炸别人 :)

非常感谢!我很喜欢!

您应该可以通过以下代码获取商店ID:

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

如果需要,您可以在 foreach 循环中使用它(当然它的值不会改变)。

$results 可能是您的整个对象,其中包含 JSON 中的所有数据。 $results->results 仅读取 JSON 中的 "results" 部分,因此循环仅迭代其中的内容。

要读取商店id,您可以直接读取:

echo $results->params->shop_id;

Params 与 results 处于同一级别,因此在您查看 $results->results 的 for each 中,您不包括 params,您可以嵌套 for each like

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