大家好:
想請問14X19的陣列,將值比對到陣列中..
以下echo出來的值是正確的,但寫入陣列結束後,我再輸出一次確認陣列的值,卻只有資料庫篩出來的最後一筆資料有寫入到陣列..想問是甚麼原因?
謝謝
A程式: B程式跑完再確認一次,錯誤
2/0:課名null
3/0:課名null
4/0:課名null
6/0:課名null
6/14:課名光電半導體元件/EC6025-1
7/0:課名null
7/14:課名光電半導體元件/EC6025-1
8/0:課名null
8/14:課名光電半導體元件/EC6025-1
for($i=0;$i<14;$i++){ //14節
for($t=0;$t<$roonum;$t++)
{
echo $i."/".$t.$infoutput[$i][$t]."<br>";
}
}
B程式,echo的值是正確
2/0:課名微積分(一)/EC2017
3/0:課名微積分(一)/EC2017
4/0:課名微積分(一)/EC2017
6/0:課名電力/EC2017
6/14:課名光電半導體元件/EC6025-1
7/0:課名電力/EC2017
7/14:課名光電半導體元件/EC6025-1
8/0:課名電力/EC2017
8/14:課名光電半導體元件/EC6025-1
$infoutput=array();
$datecourse = course::select('cname','classroom','classtime','pname','uuser')->where('starttime','<=',$weekday[0])->where('endtime','>=',$weekday[0])->where('weekday', $weekdaych);
if($datecourse->exists())
{
for($i=0;$i<14;$i++)
{ //14節
for($t=0;$t<$roonum;$t++)
{
$output=$datecourse->get();
foreach ($output as $user)
{
$coursename=$user->cname;
if(strpos($ttime,(string)$i)!==false && strpos($room,$inforoom[$t])!==false)
{
echo $infoutput[$i][$t]=$coursename;
}
else //問題再這邊只要拿掉就正常了..但我拿去前端輸出$infoutput還需要判斷有沒有值
{
$infoutput[$i][$t]="null";
}
}
}
}
}
else{
for($i=0;$i<14;$i++){ //14節
for($t=0;$t<$roonum;$t++)
{
$infoutput[$i][$t]="null";
}
}
}
怎麼看怎麼怪,下面的程式並不會幫你把$coursename代進去$infooutput啊(你的$infooutput怎麼會寫成 $infoutput ? 少了一個o ? 而且在輸入裡寫等號,不會賦值啦
if(strpos($ttime,(string)$i)!==false && strpos($room,$inforoom[$t])!==false)
{
echo $infoutput[$i][$t]=$coursename;
}
j大您好,我有作修正,不知道正規要如何表示變數寫入2維陣列,但可以輸出值,但要判斷索引後是否有值
$infoutput[$i][$t]=$coursename;
if($datecourse->exists())
{
$output=$datecourse->get();
foreach ($output as $user)
{
$ttime=$user->classtime;
$room=$user->classroom;
$pname=$user->pname;
$coursename=$user->cname;
$timenum=str_split($ttime); //例如567節,分三段
foreach($timenum as $num){
$i= array_search($num,$section);/*課表堂數*/
$j = array_search($room,$roomid); /*教室編號比對*/
$infoutput[$i][$j]=$coursename; //我不知道這種要怎麼表示寫到2維陣列
}
}
}
以陣列的看法,用
array_push($classrow , '課名光電半導體元件/EC6025-1');
............以此類推
array_push($infooutput , $classrow);
這樣也能串起二維陣列
不然你$infoutput[$i][$j]=$coursename;也是可以,就是混合陣列,在python的世界裡,叫字典...$i跟$j就是key
混合陣列也叫具名陣列或字典,但會有個缺陷
你如果
$classinfo[1] = "a";
$classinfo[3] = "xxx";
$classinfo[4] = "yyy";
之後下
echo $classinfo[2] ;
就會沒東西(null)