课表设计 唠叨请进
表格如下
f1 | f2 | f3 | f4 | f5 | f6
--------------+----+----+----+------------+------------
GA01 | 03 | 1 | 06 | 1201 | 2584
GA01 | 07 | 1 | 06 | 1201 | 2584
GA01 | 08 | 1 | 06 | 1201 | 2584
GA01 | 09 | 1 | 06 | 1201 | 2584
GA01 | 10 | 1 | 06 | 1201 | 2584
GA01 | 11 | 1 | 06 | 1201 | 2584
GA01 | 12 | 1 | 06 | 1201 | 2584
GA01 | 13 | 1 | 06 | 1201 | 2584
GA01 | 14 | 1 | 06 | 1201 | 2584
f1 教学班号,f2 周,f3日,f4节,f5 地点
(我是这样处理的:先全部选到一个数组中 :$dArray[班号][地点][日][节][]=周;
然后倒着合并数组. 里边的周、节这些都可能不是连续的数据,数据量也比较大)
foreach($All as $jxbh=>$jxb){
foreach($jxb as $dd=>$sj){
foreach($sj as $ri=>$jiezhou){
foreach($jiezhou as $jie=>$sz){
$cnt=count($sz);
$start=$sz[0];$end=$sz[0];
for($i=1;$i<$cnt;$i++){
$now=$sz[$i];
if($now-1==$end){
$end=$sz[$i];
}
else{
if($start!=$end)
$st=$start."_".$end;
else $st=$start;
// 就是这个地方有额外问题,$start 和 $end 的值 不对 ....
$OUT[$jxbh][$dd][$ri][$jie][]=$st;
$start=$sz[$i];
$end = $start;
}
}
}
}
}
}