001.
<style>
002.
.no{ width : 100px; text-align : center;}
003.
.highlight{ background-color : #cccccc; }
004.
.title{ text-align : center;}
005.
</style>
006.
<?php
007.
008.
$timeArr
=
array
(
009.
0 =>
array
(
"start"
=>
"08:30"
,
"stop"
=>
"09:20"
),
010.
1 =>
array
(
"start"
=>
"09:20"
,
"stop"
=>
"10:10"
),
011.
2 =>
array
(
"start"
=>
"10:15"
,
"stop"
=>
"11:05"
),
012.
3 =>
array
(
"start"
=>
"11:05"
,
"stop"
=>
"11:55"
),
013.
4 =>
array
(
"start"
=>
"11:55"
,
"stop"
=>
"12:45"
),
014.
5 =>
array
(
"start"
=>
"12:45"
,
"stop"
=>
"13:35"
),
015.
6 =>
array
(
"start"
=>
"13:35"
,
"stop"
=>
"14:30"
),
016.
7 =>
array
(
"start"
=>
"14:30"
,
"stop"
=>
"15:20"
),
017.
8 =>
array
(
"start"
=>
"15:20"
,
"stop"
=>
"16:10"
),
018.
9 =>
array
(
"start"
=>
"16:10"
,
"stop"
=>
"17:00"
),
019.
10 =>
array
(
"start"
=>
"17:00"
,
"stop"
=>
"17:50"
)
020.
);
021.
022.
023.
024.
$timeTeach
=
array
(
025.
0 =>
array
(
026.
array
(
'time'
=>
'08:30-11:55'
,
'title'
=>
'4312405 เทคโนโลยีสารสนเทศ และการสื่อสาร'
),
027.
array
(
'time'
=>
'13:35-15:20'
,
'title'
=>
'4312605 ระบบฐานข้อมูล'
)
028.
),
029.
1 =>
array
(
030.
array
(
'time'
=>
'12:45-16:10'
,
'title'
=>
'4312502 หัวข้อพิเศษเกี่ยวกับวิทยาการคอมพิวเตอร์'
)
031.
),
032.
2 =>
array
(),
033.
3 =>
array
(),
034.
4 =>
array
(),
035.
5 =>
array
(),
036.
6 =>
array
(),
037.
7 =>
array
()
038.
);
039.
040.
041.
042.
function
createCol(
$arr
){
043.
$row
=
""
;
044.
foreach
(
$arr
as
$data
)
045.
{
046.
$row
.=
'<td>'
.
$data
[
'start'
] .
'-'
.
$data
[
'stop'
] .
'</td>'
;
047.
}
048.
return
$row
;
049.
}
050.
051.
052.
function
getCol(
$haystack
,
$keyNeedle
)
053.
{
054.
$i
= 0;
055.
foreach
(
$haystack
as
$arr
)
056.
{
057.
if
(
$arr
[
'start'
] ==
$keyNeedle
)
058.
{
059.
return
$i
;
060.
}
061.
$i
++;
062.
}
063.
}
064.
065.
066.
function
getTimeRange(
$timeT
,
$timeCol
){
067.
$data
=
array
();
068.
foreach
(
$timeT
as
$timeA
){
069.
$time
=
$timeA
[
'time'
];
070.
if
(!
$time
)
continue
;
071.
$tm
=
explode
(
"-"
,
$time
);
072.
073.
$start
= getCol(
$timeCol
,
$tm
[0]);
074.
$end
= getCol(
$timeCol
,
$tm
[1] );
075.
$colspan
=
$end
-
$start
;
076.
$data
[
$tm
[0]] =
array
(
'colspan'
=>
$colspan
,
'title'
=>
$timeA
[
'title'
]);
077.
}
078.
return
$data
;
079.
}
080.
081.
$list
=
""
;
082.
echo
'<table border="1" width="90%" align="center" cellspacing="0">'
;
083.
echo
'<tr><td> </td><td> </td>'
. createCol(
$timeArr
) .
'</tr>'
;
084.
foreach
(
$timeTeach
as
$i
=>
$arr
){
085.
086.
087.
088.
$timeT
=
$timeTeach
[
$i
];
089.
090.
$arrRange
= getTimeRange(
$timeT
,
$timeArr
);
091.
092.
093.
094.
$no
=
$i
+ 1;
095.
096.
$list
=
'<tr>'
;
097.
$list
.=
'<td rowspan="2" class="no">'
.
$no
.
'</td>'
;
098.
$list
.=
'<td>ลายเซ็น</td>'
;
099.
$chkCol
= 0;
100.
$col
= 0;
101.
foreach
(
$timeArr
as
$timeA
)
102.
{
103.
$highlight
=
""
;
104.
$colspan
=
""
;
105.
if
(
$chkCol
< (
$col
-1) &&
$col
!= 0){
106.
$chkCol
++;
107.
continue
;
108.
}
109.
$col
= 0;
110.
$chkCol
= 0;
111.
if
(!
empty
(
$arrRange
[trim(
$timeA
[
'start'
])])){
112.
$col
=
$arrRange
[trim(
$timeA
[
'start'
])][
'colspan'
];
113.
$highlight
=
"highlight"
;
114.
$colspan
=
'colspan="'
.
$col
.
'"'
;
115.
}
116.
$list
.=
'<td '
.
$colspan
.
' class="'
.
$highlight
.
'"> </td>'
;
117.
}
118.
$list
.=
'</tr>'
;
119.
120.
$list
.=
'<tr>'
;
121.
$list
.=
'<td>เอก/รุ่น/ห้อง</td>'
;
122.
foreach
(
$timeArr
as
$timeA
)
123.
{
124.
$highlight
=
""
;
125.
$colspan
=
""
;
126.
if
(
$chkCol
< (
$col
-1) &&
$col
!= 0){
127.
$chkCol
++;
128.
continue
;
129.
}
130.
$title
=
" "
;
131.
$col
= 0;
132.
$chkCol
= 0;
133.
if
(!
empty
(
$arrRange
[trim(
$timeA
[
'start'
])])){
134.
$col
=
$arrRange
[trim(
$timeA
[
'start'
])][
'colspan'
];
135.
$title
=
$arrRange
[trim(
$timeA
[
'start'
])][
'title'
];
136.
$highlight
=
"highlight"
;
137.
$colspan
=
'colspan="'
.
$col
.
'"'
;
138.
}
139.
140.
$list
.=
'<td '
.
$colspan
.
' class="'
.
$highlight
.
' title">'
.
$title
.
'</td>'
;
141.
}
142.
$list
.=
'</tr>'
;
143.
echo
$list
;
144.
145.
}
146.
echo
'</table>'
;
147.
148.
?>