我必须检查条件,即用户不应在时间表中输入超过24小时/每天。例如。 (yyyy-mm-dd)2014-12-21 | 5小时,2014-12-21 | 10小时,2014-12-21 | 10小时然后点击提交按钮,我需要总结同一天的小时,并提醒用户说"不应每天输入超过24小时"。
这是我的代码。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<form name="" action="#" method="post">
<?php for ($i=0; $i<5; $i++){ ?>
<label>date</label>
<input class="datefield" id="datefiled_<?php echo $i; ?>" type="date" name="datevalue[]" value="" / >
<label>hrs</label>
<input class="hrscheck" id="hrscheck_<?php echo $i; ?>" type="number" value="" name="hrs[]" />
<br />
<?php } ?>
<input type="submit" name="submit" value="save">
</form>
<?php
if(isset($_POST['submit']))
{
$datevalue = $_POST['datevalue'];
$prevDate = '';
$hrs=0;
foreach($datevalue as $key=>$values)
{
echo $curDate = ($values);
echo "=>";
echo $hrs = $_POST['hrs'][$key];
echo "<br>";
if ($curDate == $prevDate) {
echo $hrs +=$hrs;
}
$prevDate = $curDate;
}
}
?>
</body>
</html>
2014-12-25=>10
2014-12-25=>10
2014-12-25=>10
2014-12-26=>5
2014-12-26=>13
我必须总结2014-12-25三小时值(10 + 10 + 10)= 30并提醒用户(不应超过24小时)
答案 0 :(得分:3)
您可以构建摘要数组,然后过滤当天报告的超过30小时的数组:
// build summary array: [date] => array of time values
$summary = [];
foreach($datevalue as $key=>$values) {
$summary[$values][] = $_POST['hrs'][$key];
}
// filter them
if (array_filter($summary, function($item) {
return array_sum($item) > 24;
})) {
echo "UH OH, a day doesn't have more than 24 hours";
}