我試圖製作一個表包含某種類型的電影院從A [1-20]到J [1-20]。我有一個包含被保留席位,這樣的txt文件:爆炸從文本文件連接字符串與新行,PHP
A2;
A1;
A3;
A7;
如果座位預留,表的BGCOLOR必須爲紅色。這是全碼:
<?php
$file = fopen($path,"r") or exit("cant open file");
$seat="";
while(!feof($file))
{
$seat.= fgets($file);
}
$seat_splitted = explode(";",$seat);
fclose($file);
$arrTable[]="";
$letter="";
$tableContent="";
for($i = 0,$counter=0;$i<10;$i++,$counter++)
{
if($i==0)
$letter="A";
else if($i==1)
$letter="B";
else if($i==2)
$letter="C";
else if($i==3)
$letter="D";
else if($i==4)
$letter="E";
else if($i==5)
$letter="F";
else if($i==6)
$letter="G";
else if($i==7)
$letter="H";
else if($i==8)
$letter="I";
else if($i==9)
$letter="J";
?>
<tr>
<?php
for($j = 1;$j<21;$j++)
{
$arrTable[$counter]= $letter.$j;
foreach($seat_splitted as $value)
{
if(strcmp($value,$arrTable[$counter])==0)
//if($value == $letter.$j)
{
$GLOBALS['color']="red";
break;
}
else
$GLOBALS['color']="white";
}
?>
<td bgcolor="<?php echo $GLOBALS['color']; ?>"> <?php echo $arrTable[$counter]?> </td>
<?php
$counter++;
}
?>
</tr>
<?php
}
?>
我不知道爲什麼,當if(strcmp($value,$arrTable[$counter])==0)
或//if($value == $letter.$j)
,其只趕上第一座是「A2」。但是,當我將txt文件更改爲:
A2;A1;A3;A7;
IF可以捕獲它們。像這樣連接字符串是錯誤的嗎? $seat.= fgets($file);
。我能做些什麼來使它與第一個txt文件一起工作?對不起,我的英語不好。
請包括您的當前輸出和您的預期輸出! – Rizier123 2015-04-06 10:57:57
'''''''seat_splitted = file($ path,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)或退出(「無法打開文件」);如果它太大隻是一個小例子,所以我們看到你想要什麼, array_walk($ seats_splitted,function($ seat){$ seat = trim(seat,';');});' – 2015-04-06 11:08:39
供參考:您可以接受答案最能幫助您並解決您的問題(http:// meta .stackexchange.com/q/5234)! – Rizier123 2015-04-06 12:23:18