我试图制作一个表包含某种类型的电影院从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