0

我有一个 php 网站,在这里我需要创建一个页面来输入学生的考试详细信息。一场考试有5个科目。每个科目都有考试日期、开始时间和结束时间

IE

Date: 02-nov-2012 
Start time: 2.30 pm
End time: 4.30 pm 

我必须检查考试日期时间的重复....即任何其他没有相似日期时间的科目,如果一个科目有

Exam Date:  02-nov-2012 
Start time: 3.00.pm 
End date: 5.00 pm 

必须避免。无效 另一个主题有

Exam Date:  02-nov-2012 
Start time: 9.00.am 
End date: 2.00 pm 

这是一个有效的

我认为这很清楚......我不知道进一步详细解释......我不知道在php中验证这一点

4

1 回答 1

0
$errors = array();

for ($i = 0; $i < count($exams); $i++) {
  for ($j = $i+1; $j < count($exams); $j++) {
    if (($exams[$j]['start_time'] >= $exams[$i]['start_time'] && ($exams[$j]['start_time'] <= $exams[$i]['end_time']) ||
        ($exams[$j]['end_time'] >= $exams[$i]['start_time'] && ($exams[$j]['end_time'] <= $exams[$i]['end_time'])) {
      $errors[] = "<li>Exams $i and $j overlap.</li>";
    }
  }
}

if ($errors) {
  echo "There were conflicts:<br><ul>\n ", join("\n ", $errors), "\n</ul>\n";
} else {
  echo "Congratulations, no conflicts!\n";
}
于 2012-10-27T06:58:19.820 回答