1
我試圖創建年,月,日,小時多維數組,所以我可以跟蹤以小時爲單位的某些數據。我試圖通過嵌套for循環來初始化這個數組,但是似乎在失敗中失敗了。多維數組 - PHP
$Year = array();
//This starts in 2015 and works until 2018
for($z=0; $z < 3; ++$z)
{
$Month = array();
array_push($Year, $Month);
//Months
for($a=0; $a < 12; ++$a)
{
//Days
for($b=0; $b < GetDaysInMonth($a); ++$b)
{
$Day = array();
array_push($Month, $Day);
//Hours
for($c = 0; $c < 24; ++$c)
{
$Hours = array(0);
array_push($Day, $Hours);
}
}
}
}
目標是初始化大小爲24的數組小時,即推到一個數組爲天,天數組個月,幾個月陣列推入年。但是,每次嘗試訪問數據時,似乎都不存在。我在這裏做錯了什麼?
你是如何試圖訪問數組元素?由於您使用'array_push()'填充數組,因此您的所有數組都將從索引0開始進行數字索引。您還在'for'循環中使用前綴增量(例如'++ $ a'),因此它們可能是執行時間少於您的預期。您可能希望更改爲後綴增量(例如'$ a ++')。例如,你的'$ Year'變量可能只有2個值,分別被索引爲'0'和'1',而不是幾年。使用'print_r()'轉儲數組的內容並查看其中的實際內容。 – Asaph
[注意:如果使用array_push()向數組中添加一個元素,最好使用'$ array [] =',因爲這樣就沒有調用函數的開銷。](http://php.net) /manual/en/function.array-push.php) – Zsw
感謝您的print_r()反饋。我不知道! –