【问题标题】:PHP iterating through array - Can't reach top level values?PHP遍历数组 - 无法达到顶级值?
【发布时间】:2015-10-08 14:37:46
【问题描述】:

我会努力寻找我的答案,并且几乎从不问问题,如果我能提供帮助的话。但现在是凌晨 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 命令范围和“参数”部分?

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

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

                $i++;
            }

我不是超级精通PHP,所以如果你能把它简单一点?这对你们来说可能很简单,我想了解我做错了什么以及如何做对。

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

非常感谢!我喜欢!

【问题讨论】:

    标签: json loops foreach iterator iteration


    【解决方案1】:

    参数与结果处于同一级别,因此在您查看 $results->results 的每个位置中,您不包括参数,您可以嵌套每个喜欢的对象

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

    【讨论】:

      【解决方案2】:

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

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

      echo $results->params->shop_id;
      

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 哇,我可以发誓我试过了,嗯。反正!完美运行,非常感谢!我会将其设置为已回答的 A.S.A.P.
        猜你喜欢
        • 1970-01-01
        • 2021-06-04
        • 1970-01-01
        • 2023-01-31
        • 2016-08-07
        • 2016-10-11
        • 2013-05-23
        • 2011-03-06
        相关资源
        最近更新 更多