有没有办法同时增加 2 个嵌套的 foreach 循环?
我有 2 个数组:
$datum = new DateTime("now");
$jaar = date("y",strtotime('now'));
$maand = strftime("%B");
$vakanties_start = array(
"BeginKerst" => new DateTime("$jaar-01-01"),
"Voorjaar" => new DateTime("$jaar-02-22"),
"Mei" => new DateTime("$jaar-04-25"),
"Zomer" => new DateTime("$jaar-07-18"),
"EindKerst" => new DateTime("$jaar-12-21"),
"Test" => new DateTime("$jaar-05-20")
);
$vakanties_eind = array(
"BeginKerst" => new DateTime("$jaar-01-05"),
"Voorjaar" => new DateTime("$jaar-03-01"),
"Mei" => new DateTime("$jaar-05-03"),
"Zomer" => new DateTime("$jaar-08-30"),
"EindKerst" => new DateTime("$jaar-12-31"),
"Test" => new DateTime("$jaar-05-25")
);
假期的开始和假期的结束。我需要检查今天是否在那些日子之间。
我试图用 2 个 foreach 循环来检查,但我会得到这个错误:
start vacation: 1-1
end vacation: 5-1
start: 1-1
end: 3-1
等等等等。这显然不是我想要的方式,因为这意味着在第一个 foreach 结束时,假期在 1-1 和 31-12 之间。
我尝试过的其他方法是像这样验证数组的键:
foreach ($vakanties_start as $vakantie_start){
foreach ($vakanties_eind as $vakantie_eind){
if ($vakantie_start->format('Y-m-d') >= $datum->format('Y-m-d') && $vakantie_eind->format('Y-m-d') <= $datum->format('Y-m-d')){
if (key($vakantie_start) == key($vakantie_eind)){
echo $vakantie_start->format('Y-m-d') . "<br>" . key($vakanties_start) . "<br>";
echo $vakantie_eind->format('Y-m-d') . "<br>" . key($vakanties_eind) . "<br>";
}
}
}
}
但这使得代码只显示日期 1-1 到 5-1。有人可以指导我正确的方向吗?也许我做的完全错了,但我不知道更简单的解决方案。
慕沐林林