1 回答
TA贡献2012条经验 获得超12个赞
首先,我假设您有几个相同的 if/else 语句与第二个代码片段中的语句相匹配。我们可以通过在您的代码中使用额外的循环来清理它们。我还将向您展示如何使用数组而不是为每一天创建一个单独的变量。
在循环上方,创建一个数组,其中每个键对应于一周中的一天。(用这个替换你所有的$total{DAY} = 0;变量声明)
$days = [
'Monday' => 0,
'Tuesday' => 0,
'Wednesday' => 0,
'Thursday' => 0,
'Friday' => 0
];
现在,我们可以替换用于增加$total{DAY}变量的 if/else 语句。将所有这些 if/else 语句替换为:
foreach(array_keys($days) as $day) {
echo '<b>{$day}: </b>';
if(!empty($presentie["work{$day}"])) {
++$days[$day];
echo $presentie["work{$day}"];;
} else{
echo 'not available';
}
}
这 9 行代码与您之前的 ~35 行代码完全相同。
现在,进入您的实际问题。您在评论中说,您在问题中要求的输出是“ ...在同一页面上且在循环之前”。这是一个问题,因为您的循环会增加这些值,因此无法在循环之前访问它们。你必须把它放在循环之后。以下是循环后的操作方法:
//replace with the name of your date select element]
$date = $_POST['date'];
//using `date()`, get the day of the week of the selected date. (Monday-Friday)
$day_of_week = date('l', strtotime($date));
if($days[$day_of_week] > 0) {
echo $days[$day_of_week] . " people available.";
} else {
echo "Not Available";
}
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报