检索JSON数据

时间:2013-08-02 13:21:22

标签: php json import

我有一个小问题。我想使用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.

3 个答案:

答案 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;
相关问题