2010-12-15 3 views
-1

Есть ли способ использовать DATE в PHP как массив. Мне нужно что-то достичь:

$date_array = (1-Jan => 'A', 2-Jan => 'B', 3-Jan => 'C', .... so on)Использование Date as Array

Возможно ли это?

+0

какой тип даты вы хотите использовать в качестве показателей? Объекты DateTime? Строки даты? – joni 2010-12-15 09:26:17

+0

Строки даты будут использоваться в качестве индекса. – cys 2010-12-15 10:53:28

ответ

0

вручную:

$array['1-Jan'] = 'A'; 
$array['2-Jan'] = 'B'; 
... 

Или с петлей:

$array = array(); 
$currentDate = strtotime('2010-01-01'); 
$totalDays = 365; 
for ($i=0; $i<$totalDays; $i++) { 
    $array[date('j-M', $currentDate)] = $i; 
    $currentDate = strtotime("+1 day", $currentDate); 
} 
0

РНР руководство определяет, что только строка и целое число можно использовать в качестве ключей для доц. массивы, но дата возвращает строку, поэтому они должны быть точными, но возврат значений обратно будет немного беспорядочным.

А что-то вроде:

$arr = Array(
'A'=>date('Y-m-d', time()), 
'B'=>date('Y-m-d', time()-(7 * 24 * 60 * 60)) 
); 

echo in_array(date('Y-m-d'), $arr); 

Это Echos "1".

Моя ошибка, вам нужно будет использовать array_search() вместо in_array(), так что вы получите ключ массива:

echo array_search(date('Y-m-d'), $arr); 

Выходы "А".