我有一个天气json,从那里可以得到8天的天气预报。我的问题是我想在每4天2行的表中显示结果。
我设法做到了,但是以一种非常奇怪的方式,在尝试尝试错误的过程中,纯属初学者的运气:-)我什至不十分清楚为什么将结果分成两行...但是它有效!!!我唯一不能做的就是在两行之间加入“ hr”行,以使表更易于阅读。
您可以在这里http://www.meteocaldas.com/previsao_ds.php看到结果
使用当前代码,我将使用“ br”在不同行中的同一“ td”内显示每天的预测值。我一直在阅读,在“ td”中使用“ br”是不正确的,因此我不确定自己是否在做严格的事情。
使用具有4列(每天一列)并且每个值具有不同行的表会更好吗?
是否有任何方法可以重写此代码以使其更高效并且看起来更“幼稚”? :-)预先感谢!
<?php
(...)
$decoded = json_decode($rawData, true);
?>
<table>
<?php for($k=0;$k<8;$k++){
$dailyvalue = $decoded['daily']['data'][$k];
$dailyTime = $dailyvalue['time'];
$dailyIcon = $dailyvalue['icon'];
$dailyTempMax = round($dailyvalue['temperatureMax'],0);
$dailyTempMin = round($dailyvalue['temperatureMin'],0);
(...)
?>
<!-- table for 8 day's forecast (2 rows/4 days each) -->
<td>
<?php echo strftime("%a %d",$dailyTime) ?>
<br>
<?php echo '<img src="path/'.$dailyIcon.'.png">' ?>
<br>
<?php echo $dailyTempMin.'º' ?> </span>
<br>
<?php echo $dailyTempMax.'º' ?></span>
<br>
(...)
<?php if ($k == 3) {
echo '</td></tr>';
} ?>
<?php
}
?>
</td></tr><table>
答案 0 :(得分:0)
为什么不简单地将两个不同的表彼此堆叠呢?
答案 1 :(得分:0)
根据您的评论请求,以下是基于上面的代码的一些示例伪代码:
<?php
(...)
$decoded = json_decode($rawData, true);
for($k=0;$k<8;$k++){
$dailyvalue = $decoded['daily']['data'][$k];
$dailyTime[$k] = $dailyvalue['time'];
$dailyIcon[$k] = $dailyvalue['icon'];
$dailyTempMax[$k] = round($dailyvalue['temperatureMax'],0);
$dailyTempMin[$k] = round($dailyvalue['temperatureMin'],0);
}
?>
<table>
<?php
echo "<tr>";
for($k = 0; $k <= 3; $k++){
echo "<td>".strftime("%a %d",$dailyTime[$k])."</td>"; // this will make the "datetime" row
}
echo "</tr><tr>";
for($k = 0; $k <= 3; $k++){
echo "<td><img src=path/".$dailyIcon[$k].".png></td>"; // this will make the "icon" row
}
echo "</tr><tr>";
for($k = 0; $k <= 3; $k++){
echo "<td>".$dailyTempMin[$k]."º</td>"; // this will make the "MinTemp" row
}
echo "</tr><tr>";
for($k = 0; $k <= 3; $k++){
echo "<td>".$dailyTempMax[$k]."º</td>"; // this will make the "MaxTemp" row
}
echo "</tr>";
// put stuff you want between the tables here
echo "<tr>";
for($k = 4; $k <= 7; $k++){
// proceed to do the same as above
请注意,还有其他方法可以减少屏幕混乱(例如将for循环的表格绘制移动到函数中),但这是它的基本要旨