我知道这是一个基本问题,但我无法弄清楚如何实际做到这一点。我已经阅读了无数关于它的教程,但它们似乎无法正常工作。
var_dump($google_check);
返回以下内容:
string(488) "{
"matches": [
{
"threatType": "MALWARE",
"platformType": "LINUX",
"threat": {
"url": "http://malware.testing.google.test/testing/malware/"
},
"cacheDuration": "300s",
"threatEntryType": "URL"
},
{
"threatType": "MALWARE",
"platformType": "LINUX",
"threat": {
"url": "http://malware.testing.google.test/testing/malware/"
},
"cacheDuration": "300s",
"threatEntryType": "URL"
}
]
}
"
我想回显数组的结果,所以像
echo $google_check[0][matches][threat];
echo $google_check[1][matches][threat];
问题是这会在匹配和威胁上返回非法偏移,并且只有echo是单个字符{
我做错了什么?如何在不转储整个数组的情况下回显此数组的结果?
答案 0 :(得分:3)
您收到的回复是在json中,因此您需要首先对响应进行json_decode。
$decoded = json_decode($google_check, true);
然后你可以像数组一样访问它
echo $decoded['matches'][0]['threat'];
echo $decoded['matches'][1]['threat'];
如果你想要url值,你需要像这样做。
echo $decoded['matches'][0]['threat']['url'];
echo $decoded['matches'][1]['threat']['url'];
另请注意,在查看数字键不是数字时,您需要用引号括起来(例如$解码['匹配']而不是$ decode [匹配] )。
这里有关于json的快速解释