我真的很困惑以下功能的结果。我知道,它的一小段代码,但我认为有足够的信息来了解什么是应该发生的:混淆功能输出
while ($k < $dateCount) {
echo $k." ==> ".$forecastData[$k]['Booked Date']." ==> ".$startDate."<br>";
if($forecastData[$k]['Booked Date'] == $startDate){
echo $k." ==> YAY<br>";
}
else{
echo $k." ==> boo ==> ".$startDate."<br>";
}
$k++;
$startDate = date('Y-m-d', strtotime("+1 day", strtotime($startDate)));
}
$ķ是数组键 - >开始于0;
$ dateCount是数组的大小(以阻止它在31天或多么漫长的范围)
$ forecastData是一个日期的所有销售数据的多维数组。 - 包含该日期的大量信息,包括预订日期,即信息存储日期。
$的startDate是已投入,但转化为当天去年的日期 - 在这种情况下提出的日期是2016年10月1日和转换后的日期是2015年9月26日
我想如果日期相等,那么用YAY字回显数组的数字,否则用字boo回显数组的数字。
与日期一样,k每循环增加1。
我还打印了循环的初始值以显示比较结果。
我无法理解的是,这是输出:
0 ==> 2015年9月26日==> 2015年9月26日
0 ==>嘘==> 2015年9月26日
1 ==> 2015年9月27日==> 2015年9月27日
1 ==> YAY
2 ==> 2015年9月28日== > 2015-09-28
2 ==> YAY
3 ==> 2015年9月29日==> 2015年9月29日
3 ==> YAY
4 ==> 2015-09 -30 ==> 2015年9月30日
4 ==> YAY
5 ==> 2015年10月1日==> 2015年10月1日
5 ==> YAY
6 ==> 2015年10月2日==> 2015年10月2日
6 ==> YAY
7 ==> 2015年10月3日==> 2015年10月3日
7 ==> YAY
8 ==> 2015年10月4日==> 2015年10月4日
8 ==> YAY
9 ==> 2015-10 -05 ==> 2015-10-05
9 ==> YAY
10 ==> 2015年10月6日==> 2015年10月6日
10 ==> YAY
11 ==> 2015-10 -07 ==> 2015年10月7日
11 ==> YAY
第一种是没有意义的我吗?它确实等于它应该但由于某种原因跳过它?此外,如果我硬编码的日期,那么它将工作。
我一直在试图理解了这么久,现在任何想法将有助于
谢谢
尝试使用''的var_dump回声,而不是()获取更详细的信息(变量类型等) - 也:在进入之前,你如何定义$的startDate循环? –
猜测:在第一个日期字符串中有一个尾部空间或其他不可见字符... – deceze
显示'$ startDate'的初始声明 – Justinas