2 回答

TA贡献1906条经验 获得超3个赞
你快到了。您必须计算 2 个日期之间的差异并在您的内部循环下方相应地分配颜色。条件如下:
$diff = $month[2] - $month[1];
$total += $diff;
if($diff < -2.0){
echo '<td style="color:green">' . $diff . '</td>';
}else if($diff > 2.0){
echo '<td style="color:red">' . $diff . '</td>';
}else{
echo '<td>' . $diff . '</td>';
}
完整代码:
<?php
$months = array
(
array("Jan",33.6,32.6),
array("Feb",35.6,42.9),
array("Mar",43.1,40.3),
array("Apr",53.2,51.4),
array("May",62.7,68.1),
array("Jun",76.3,72.5),
array("Jul",76.3,77.1),
array("Aug",74.6,78.6),
array("Sep",68,73.2),
array("Oct",57,60.1),
array("Nov",46.7,45.3),
array("Dec",37.7,41.0)
);
echo '<table border = "1">';
echo '<tr><th>Month</th><th>1950 - 2018</th><th>2018</th><th>Difference</th></tr>';
$total = 0;
foreach ($months as $month) {
echo '<tr>';
foreach ($month as $avg) {
echo '<td>' . $avg . '</td>';
}
$diff = $month[2] - $month[1];
$total += $diff;
if($diff < -2.0){
echo '<td style="color:green">' . $diff . '</td>';
}else if($diff > 2.0){
echo '<td style="color:red">' . $diff . '</td>';
}else{
echo '<td>' . $diff . '</td>';
}
echo '</tr>';
}
echo "<tr><td colspan='4'>Total difference : $total</td></tr>";
echo '</table>';

TA贡献1827条经验 获得超4个赞
用于array_walk将临时差异添加到每个子数组:
array_walk($months, function(&$month){
$month[3] = $month[2] - $month[1];
});
然后 $month[3] 将是你的区别。为了便于阅读,我将删除内部循环并每月显式回显该行:
foreach ($months as $month) {
echo '<tr>';
echo '<td>' . $month[0] . '</td>';
echo '<td>' . $month[1] . '</td>';
echo '<td>' . $month[2] . '</td>';
echo '<td';
if ($month[3] > 2) {
echo ' style="color: red;"';
}
elseif ($month[3] < -2) {
echo ' style="color: green;"';
}
echo '>' . $month[3] . '</td>';
echo '</tr>';
}
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报