我真的很困惑以下功能的結果。我知道,它的一小段代碼,但我認爲有足夠的信息來了解什麼是應該發生的:混淆功能輸出
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