从 json 中的子行中删除方括号

我正在尝试在网站上显示以下数据:-

"daily":[{"dt":1593864000,"sunrise":1593834201,"sunset":1593894929,"temp":{"day":18.47,"min":17.83,"max":18.71,"night":17.83,"eve":18.71,"morn":18.47},"feels_like":{"day":16,"night":13.09,"eve":16.54,"morn":16},"pressure":1006,"humidity":77,"dew_point":14.37,"wind_speed":5.51,"wind_deg":244,"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],"clouds":90,"uvi":7.08}

我提取除天气部分中的条目之外的任何条目,因为我使用的代码认为天气数据是一个单独的数组。

与显示数据相关的代码部分是:-

<span class="min-temperature">&nbsp;Minimum Temperature&nbsp;<?php echo $data->daily[0]->clouds; ?>&deg;C</span><br>
  <span class="min-temperature">&nbsp;Pressure&nbsp;<?php echo $data->daily[0]->weather->id; ?></span>

第一行显示数据正常,但天气部分中的任何内容都无法显示任何内容。

我已经看到了删除所有方括号的解决方案,但它只需要围绕天气部分的括号。

提前致谢


九州编程
浏览 154回答 2
2回答

慕尼黑的夜晚无繁华

下面的代码 json_decodes 并回显云和天气数组。'希望能帮助到你。请给出意见。谢谢。<?php&nbsp;$data=json_decode( '{"daily":{"dt":1593864000,"sunrise":1593834201,"sunset":1593894929,"temp":{"day":18.47,"min":17.83,"max":18.71,"night":17.83,"eve":18.71,"morn":18.47},"feels_like":{"day":16,"night":13.09,"eve":16.54,"morn":16},"pressure":1006,"humidity":77,"dew_point":14.37,"wind_speed":5.51,"wind_deg":244,"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],"clouds":90,"uvi":7.08}}'); # define $data as a stdClass Objectecho $data->daily->clouds;echo "\n";# below, weather array is converted into a string$wa=(array)$data->daily->weather[0];foreach($wa as $key=> $val){&nbsp; &nbsp; echo $key."=".$val."; ";}?>输出:90id=500; main=Rain; description=light rain; icon=10d;&nbsp;

Smart猫小萌

在这种情况下,您必须使用json_decode将 json 字符串转换为关联数组。$data = '{"daily":{"dt":1593864000,"sunrise":1593834201,"sunset":1593894929,"temp":{"day":18.47,"min":17.83,"max":18.71,"night":17.83,"eve":18.71,"morn":18.47},"feels_like":{"day":16,"night":13.09,"eve":16.54,"morn":16},"pressure":1006,"humidity":77,"dew_point":14.37,"wind_speed":5.51,"wind_deg":244,"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],"clouds":90,"uvi":7.08}}';$decode = json_decode($data,true);echo '<pre>';//print_r($decode);echo $decode['daily']['clouds'].'<br>';echo $decode['daily']['uvi'].'<br>';echo $decode['daily']['weather'][0]['id'].'<br>';echo $decode['daily']['weather'][0]['main'].'<br>';&nbsp; //These three are from weather array.&nbsp;echo $decode['daily']['weather'][0]['description'].'<br>';echo '<pre>';输出907.08500Rainlight rainprint_r如果您想知道数组索引是如何工作的,您可以从代码中使用它,只需将其从注释中删除即可。
打开App,查看更多内容
随时随地看视频慕课网APP