這是關於填充給定年份的假期(而不是如何計算它們)的數組,以便隨後輕鬆訪問它們。我的方法是使用假期的時間戳作爲關鍵字。如何用假期填充數組?
$year = 2015;
$holidays = array(
strtotime($year . '-01-01') => array(
'holiday' => 'New Year',
'comment' => 'Happy New Year!'
),
strtotime($year . '-04-05') => array(
'holiday' => 'Easter',
'comment' => 'Happy Easter!'
),
strtotime($year . '-12-25') => array(
'holiday' => 'Christmas',
'comment' => 'Merry Christmas!'
)
.
.
.
);
這工作得很好,直到有一個每天在同一時間超過一個節日,例如2015年12月6日(聖尼古拉斯節,第一次降臨)。在這種情況下,已經定義的鍵後面的值被覆蓋。所以需要另一個數組級別。
$year = 2015;
$holidays = array();
$holidays[strtotime($year . '-01-01')][] => array(
'holiday' => 'New Year',
'comment' => 'Happy New Year!'
);
$holidays[strtotime($year . '-04-05')][] => array(
'holiday' => 'Easter',
'comment' => 'Happy Easter!'
);
$holidays[strtotime($year . '-12-25')][] => array(
'holiday' => 'Christmas',
'comment' => 'Merry Christmas!'
);
$holidays[strtotime($year . '-12-06')][] => array(
'holiday' => 'St Nicholas\' Day',
'comment' => 'Make sure to turn out your boots!'
);
$holidays[strtotime($year . '-12-06')][] => array(
'holiday' => 'First Advent',
'comment' => 'Remember to light the first candle on your Advent wreath!'
);
.
.
.
);
可這陣填充中的「一條線」來完成(注意;
)作爲我的第一個例子嗎?你有沒有比我的方法更聰明的想法?
作爲節日可能會因文化,宗教的變化和國家,也許使用圖書館是一個更好的主意。或者你可以有一個數組來聲明每個節假日的細節,並使用'foreach'循環來填充'$ holiday'數組 – Andrew
你建議使用哪個庫?你能否詳細解釋你的第二種方法,因爲我真的不明白嗎? – Ben
我不能推薦任何圖書館,因爲我還沒有嘗試過自己,但谷歌顯示我在第一頁https://github.com/michalmanko/php-library-holiday – Andrew