2013-12-02 2 views
0

Я прокручиваю массив дней в текущем месяце, чтобы создать еще один массив дней, которые находятся или после текущего дня. Затем мне нужно включить это в то, что я считаю многомерным массивом (раньше не работали с этими типами массивов). Вот мой код, который генерирует дни месяца и сравнивает каждый из текущей даты, чтобы получить мой исходный массив:Создание многомерного массива PHP в цикле foreach

// Set the default timezone 
date_default_timezone_set('Australia/Sydney'); 
$today = date("j"); 
$firstDayCurrentMonth = date("Y-m-01"); 

// Get number of days in current month 
$days = date("t"); 
// echo $days; 

// Get array of all dates in current month 
$aDates = array(); 
$oStart = new DateTime($firstDayCurrentMonth); 
$oEnd = clone $oStart; 
$oEnd->add(new DateInterval("P1M")); 

while($oStart->getTimestamp() < $oEnd->getTimestamp()) { 
    $aDates[] = $oStart->format('j'); 
    $oStart->add(new DateInterval("P1D")); 
}       

// Setup days array 
$days = array();  

// Generate $linked_days array to feed into calendar files 
foreach($aDates as $date) { 
    if($date >= $today) { 
     $days[] = $date; 
    }      
} 

Это все работает хорошо до сих пор - теперь мне нужно, чтобы включить этот массив дней в массив в следующем формате:

array("year" => array("month" => array(days))); 

Например, для 2-го декабря 2013 года она будет выглядеть следующим образом:

$allDays = array("2013" => array("12" => array(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31))); 

Я не знаю, как вставить свой массив дней в больших multidimen sial array?

ответ

2

Доступ к массиву многомерного может использовать вложенный [], например:

$allDays['2013']['12'] = array(...); 

I может иметь более простой код для примера:

<?php 

$day = '2nd Dec, 2013'; 
$i = strtotime($day); 

array("year" => array("month" => array(days))); 
$allDays = array(
    date('Y', $i) => array(
     date('m') => range(date('d', $i), intval(date('t'))), 
    ), 
); 

var_dump($allDays); 

Надеется, что это полезно для вас.

Смежные вопросы