Я пытаюсь создать многомерный массив для Years, Months, Days, Hours, чтобы я мог отслеживать определенные данные на почасовой основе. Я пытаюсь инициализировать этот массив через вложенные для циклов, но, похоже, терпит неудачу в нем.Многомерный массив - 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. Вы также используете префиксные приращения (например, '++ $ a') в своих циклах' for', поэтому они могут быть выполняя на 1 меньше времени, чем вы ожидаете. Возможно, вам захочется перейти на приращения суффикса (например, '$ a ++'). Так, например, ваша переменная '$ Year', вероятно, имеет только 2 значения, индексированные как' 0' и '1' соответственно, а не годы. Используйте 'print_r()', чтобы выгрузить содержимое массивов и посмотреть, что на самом деле находится в них. – Asaph
[Примечание. Если вы добавляете один элемент в массив, используйте '$ array [] =', потому что в этом случае нет накладных расходов на вызов функции.] (Http://php.net /manual/en/function.array-push.php) – Zsw
Спасибо за отзыв print_r(). Я не знал об этом! –