祝日やスケジュールなど、「特定の日」を強調表示するなどのためのデータを配列から流し込む事例です。
祝日配列
$holiday_arr = array( '0101'=>'元日', '0114'=>'成人の日', '0211'=>'建国記念日' );
DateTimeオブジェクトから出力しやすい形式で日付をキーとして、名称を並べた配列にします。
祝日を当該の日に組み込む
元となるカレンダー部分の処理は下記です。
DateTimeオブジェクトをformatして、祝日配列のキーと対応させることで、存在すれば配列に祝日名を組み込みます。
$now = new DateTime();
$last = $now->format('t');
for($i=1; $i<=$last; $i++) {
$week = $tmpdt->format('w');// 曜日を取得
// ※※祝日判定用に月日文字列を準備※※
$tmpdt_str = $tmpdt->format('md');
/*
* ここに月初めの週の前を埋める処理
* */
// 配列に日付をセットする部分
$calendar[$j]['day'] = $i;
// ※※月日文字列に該当する項目が祝日配列にあれば、追加する。※※
$calendar[$j]['holiday'] = isset($holiday_arr[$tmpdt_str])?$holiday_arr[$tmpdt_str]:'';
$j++;
$tmpdt->modify("+1 day");
/*
* ここに月末日の週を金曜まで空要素で埋める処理
* */
}

