0

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

3 回答 3

1

这样的事情怎么办。

$magnitude = array();

foreach($data->features as $features){
    $magnitude[] = $features->properties->mag;
}

print_r($magnitude);
于 2013-08-02T13:27:02.140 回答
1

@Ben Fortune 的答案应该有效,但这里是针对您的原始代码的更直接的修复。由于$data->features不是数组而是对象,因此您需要使用{}, not访问数值属性[]。此外,由于您使用的是基于 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...
}
于 2013-08-02T13:41:59.267 回答
0

怎么样

$magnitude = $data->features->{'['.$i.']'}->properties->mag;
于 2013-08-02T13:36:27.410 回答