我有一个小问题。我想使用PHP将一些JSON编码数据导入到我的页面中。除了一件事以外,一切正常。原始JSON字符串中的节点,其中一些被称为例如“[0]”,“[1]”等。现在这些节点的数量取决于元素的数量并且是可变的。 那么,我想做什么......我有一个变量“$ count”,其中包含元素的数量。然后我想按如下方式解码JSON数据:
$count = $data->metadata->count;
for($i=0;$i<=$count;$i++){
$magnitude = $data->features->[$i]->properties->mag;
}
但问题是,一旦有“[$ i]”就会给我一个错误。有没有人知道如何更改它,以便例如在有5个值的情况下,它运行5次“for”语句并从中获取数据:
$magnitude = $data->features->[0]->properties->mag;
$magnitude = $data->features->[1]->properties->mag;
etc.
答案 0 :(得分:1)
这样的事情怎么样。
$magnitude = array();
foreach($data->features as $features){
$magnitude[] = $features->properties->mag;
}
print_r($magnitude);
答案 1 :(得分:1)
@Ben Fortune的答案应该有效,但这是对原始代码的更直接修复。由于$data->features
不是数组而是对象,因此您需要使用{}
访问数字属性,而不是[]
。此外,由于您使用的是基于0的集合,因此应将if
语句中的条件从$i <= $count
更改为$i < $count
。
$count = $data->metadata->count;
for($i=0; $i < $count; $i++) {
$magnitude = $data->features->{$i}->properties->mag;
// Do stuff with $magnitude...
}
答案 2 :(得分:0)
怎么样
$magnitude = $data->features->{'['.$i.']'}->properties->mag;