所以,我一直在试验php中的每个循环,作为一种阅读和显示csv文件内容的方式。这就是我到目前为止所做的:
$file = file("games.csv");
foreach($file as $k)
$csv = explode(',',$k);
echo "<tr>
<td>$csv[0]</td>
<td>$csv[1]</td>
<td>$csv[2]</td>
<td>$csv[3]</td>
<td>$csv[4]</td>
</tr>";
?>
它可以工作,但只显示csv文件中的最后一条记录。为什么是这样?直到我能理解为什么,我认为我不能解决问题并显示所有记录
答案 0 :(得分:2)
在{
的正文周围添加大括号}
foreach
。您正在使用的语法意味着只有第一行被循环。
foreach($file as $k) {
$csv = explode(',',$k);
echo "<tr>
<td>$csv[0]</td>
<td>$csv[1]</td>
<td>$csv[2]</td>
<td>$csv[3]</td>
<td>$csv[4]</td>
</tr>";
}
答案 1 :(得分:0)
尝试这样做,在你当前的语法中,它将第一行视为foreach体的一部分,这就是它只回显你CSV文件的最后一行的原因。
<?php
$file = file("games.csv");
foreach($file as $k)
{
$csv = explode(',',$k);
echo "<tr>
<td>$csv[0]</td>
<td>$csv[1]</td>
<td>$csv[2]</td>
<td>$csv[3]</td>
<td>$csv[4]</td>
</tr>";
}
?>
答案 2 :(得分:0)
这就是所有控制块(ifs和loop)都应该用大括号括起来的原因......你的代码只是在foreach之后循环第一个语句。
$file = file("games.csv");
foreach($file as $k) {
$csv = explode(',',$k);
echo "<tr>
<td>$csv[0]</td>
<td>$csv[1]</td>
<td>$csv[2]</td>
<td>$csv[3]</td>
<td>$csv[4]</td>
</tr>";
}
?>