Я пишу PHP-скрипт, где входы:
From date To date
Затем я хочу использовать этот диапазон дат и создать массив, который имеет:
Array(date,x)
Когда я добавляю каждую дату в массив, я буду вычислять значение, которое идет с ним.
С .NET я бы (в верхней части моей головы) использовал словарь, где дата была ключом, а x – значением.
Основной задачей является получение этого диапазона дат, а затем разделение этого диапазона на массив или словарь какого-либо рода (что было бы идеальным в php)
Поскольку я добавляю его в массив, я сбегу от некоторого другого кода, который я уже написал, который вычисляет значение, которое следует использовать с этой датой
В конце всего этого, когда он добавлен туда, мне нужно будет проходить через массив или список и добавить все значения x вместе.
вы можете попробовать это
функция makeDateRange ($ from, $ to, $ pattern = 'md-y') { $ day = date ($ pattern, $ from); $ to = date ($ pattern, $ to); $ parseDate = date_parse ($ from); while ($ day <= $ to) { $ day = mktime (0,0,0, $ parseDate ["month"], $ parseDate ["day"] + 1, $ parseDate ["year"]); $ dateArray [] = дата ($ pattern, $ day); } return $ dateArray; }
// здесь make array
$ keys = makeDateRange ("12-01-11", "12-02-11");
// здесь делаем выше массив как ключ в $ массиве
$ a = array_fill_keys ($ keys, 'none');
print_r ($ а);
(Непроверенные)
function dateArray($from, $to, $value = NULL) { $begin = new DateTime($from); $end = new DateTime($to); $interval = DateInterval::createFromDateString('1 day'); $days = new DatePeriod($begin, $interval, $end); $baseArray = array(); foreach ($days as $day) { $dateKey = $day->format("Ymd"); $baseArray[$dateKey] = $value; } return $baseArray; } $datesArray = dateArray('2011-01-01', '2011-03-31',true);
Если я правильно вас понимаю, вы можете использовать для этого ассоциативный массив:
array( '00-00-00' => $value, '01-01-01' => $value, // etc... );
Или вы можете создать его так:
$myArray = array(); $myArray['00-00-00'] = $value; $myArray['01-01-01'] = $value;
Вы можете заполнить их, запустив цикл …