我有一个数组(由api提供),其中我试图从一个机构获取ID。
我将结果放在myexample.com/blog/cars/{car_id} => myexample.com/cars/{post_id}
中,并将结果放在$decodeArray = json_decode($result);
中
返回:
var_dump();
我尝试回应每个机构的所有项目,例如'id'和'name'。 我试图达到这些价值观,但似乎无法做到正确。
object(stdClass)#1 (2) {
["ok"]=>
bool(true)
["establishments"]=>
array(4) {
[0]=>
object(stdClass)#2 (2) {
["level"]=>
string(5) "admin"
["establishment"]=>
object(stdClass)#3 (5) {
["id"]=>
string(36) "0b246874-2c53-11e8-8fb6-001a4aa8ea16"
["name"]=>
string(9) "robinsons"
["address"]=>
string(24) "Belfast northern ireland"
["lat"]=>
float(54.594869)
["lng"]=>
float(-5.933954)
}
}
[1]=>
object(stdClass)#4 (2) {
["level"]=>
string(5) "admin"
["establishment"]=>
object(stdClass)#5 (5) {
["id"]=>
string(36) "1e95af3a-2ce7-11e8-8fb6-001a4aa8ea16"
["name"]=>
string(7) "reimink"
["address"]=>
string(13) "dorpsstraat 6"
["lat"]=>
float(123.123)
["lng"]=>
float(-74.99)
}
}
[2]=>
object(stdClass)#6 (2) {
["level"]=>
string(5) "admin"
["establishment"]=>
object(stdClass)#7 (5) {
["id"]=>
string(36) "3d1e500b-2c4d-11e8-8fb6-001a4aa8ea16"
["name"]=>
string(14) "kelly's cellar"
["address"]=>
string(24) "Belfast northern ireland"
["lat"]=>
float(54.599508)
["lng"]=>
float(-5.93216)
}
}
[3]=>
object(stdClass)#8 (2) {
["level"]=>
string(5) "admin"
["establishment"]=>
object(stdClass)#9 (5) {
["id"]=>
string(36) "75987f56-2de4-11e8-8fb6-001a4aa8ea16"
["name"]=>
string(7) "reimink"
["address"]=>
string(12) "graslanden 2"
["lat"]=>
float(3456.33)
["lng"]=>
int(-1)
}
}
}
}
上面的foreach循环似乎是我能得到的最接近的循环,但它只返回“oe”(不知道起源于何处)。
提前致谢!
答案 0 :(得分:1)
您尝试使用数组语法(带方括号)访问数据结构,但它不是数组。
将TRUE
作为json_decode()
的第二个参数传递给它,要求它将JSON解码为数组(而非对象),foreach
循环中的代码将按预期工作。
$decodeArray = json_decode($result, TRUE);
答案 1 :(得分:1)
您需要将true
传递给json_decode
才能获得数组,但是您需要查看嵌套:
foreach ($decodeArray['establishments'] as $values)
{
echo $values['establishment']['name'];
}
要用你拥有的对象来做它:
foreach ($decodeArray->establishments as $values)
{
echo $values->establishment->name;
}
o
和e
来自仅有的两个顶级属性的第一个字母:“ok”和“sitesments”。由于您尝试访问它们的方式,0
被视为字符串索引,您正在对属性名称进行操作。