为了账号安全,请及时绑定邮箱和手机立即绑定

我如何查看某人在特定日期何时有空?

我如何查看某人在特定日期何时有空?

PHP
Helenr 2023-04-21 14:01:35
我正在制作一个网站,您可以在其中预订位置,但对于某些位置,需要有人在那里。前面问了一个问题,如何统计某天有多少人有空,比如:周一有2个人有空。但现在我希望,如果在一周中的特定一天至少有 1 个人有空,你会收到一条消息,说有人在那里。但我的代码没有这样做,它一直说有人可用,即使没有。我的代码在这里:if(array_sum([$totalMonday, $totalTuesday, $totalWednesday, $totalThursday, $totalFriday]) > 0){      echo 'someone is available';} else{      echo 'no one is available';}$ totalMonday、$totalThursday 等在代码的前面指定,只要有人有空,它们就会计数,例如:echo '<b>Monday: </b>';if(!empty($presentie["workMonday"])) {      ++$totalMonday;      echo $presentie["workMonday"];;} else{      echo 'not available';}所以我不知道我做错了什么,如果不清楚,请告诉我,我很难解释哪里出了问题。提前致谢
查看完整描述

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";

}


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信