【发布时间】:2023-04-05 13:41:01
【问题描述】:
您好,我的 Json 格式如下:
{
"result":0,
"status":[
{
"id":"00001",
"vid":"yes"
},
{
"id":"00002",
"vid":"yes"
},
{
"id":"00003",
"vid":"no"
}
]
}
我想使用 PHP 中的json_decode 函数来解码id 值,如下所示:
00001
00002
00003
这是我正在使用的代码:
$url = file_get_contents("URL");
foreach(json_decode($url, true) as $key=>$value){
foreach($value->status[0] as $key1=>$value1){
echo $value1->id;
}
}
据我所知,问题似乎出在status[0] 上,使用status[0] 是选择status 键的唯一方法。但是我无法让循环正常工作。
我得到错误:Trying to get property of non-object 意思是 status[0] 在 Json 数组中没有找到 status 但是我不知道为什么会这样,因为当我提取如下值时它会起作用:$id = $url->status[0]->id;
如果有人有任何建议或意见,我将不胜感激。谢谢
【问题讨论】:
-
你查过 json_decode 对
true参数的作用吗?url是变量名的错误选择。 -
另请参阅How do I extract data from JSON with PHP? 以获取一些示例。第一个
foreach毫无意义,第二个应该只是循环["status"]。使用array_column会更简单。 -
@mickmackusa 是的,我有,但我在原型设计中留下了它......谢谢
-
@mario 谢谢,array_column 函数将来会有所帮助。
标签: php arrays json loops foreach