以下代码适用于CSV文件.
但是我想创建多个表,并且值都在同一CSV中.
我应该如何在第二个表中使用$rowcount,它应该看起来像第一个表,仅将th的其他第一个值和td的以下值一起使用.
$file = new SplFileObject("arbeit.csv");
$file->setFlags(SplFileObject::READ_CSV);
$rowcount = 0;
foreach ($file as $row) {
$rowcount++;
if ($rowcount == 1) {
list($vokabel_en, $vokabel_de) = $row;
printf('
![play.png](/bilder/symbole/play.png)
![play.png](/bilder/symbole/play.png)
continue;
}
if ($rowcount >= 31) break;
list($vokabel_en, $vokabel_de) = $row;
printf('
![play.png](/bilder/symbole/play.png)
![play.png](/bilder/symbole/play.png)
}
?>
解决方法:
创建具有所需参数的函数.让函数还回显(打印)表标签,即可完成操作.
代码如下所示:
function CreateLangTable($csvFile, $startRow, $endRow) {
if ($endRow < $startRow) {
return;
}
echo '
$csvFile->seek($startRow);
vprintf('
![play.png](/bilder/symbole/play.png)
![play.png](/bilder/symbole/play.png)
$csvFile->current());
while ($csvFile->key() <= $endRow) {
$csvFile->next();
vprintf('
![play.png](/bilder/symbole/play.png)
![play.png](/bilder/symbole/play.png)
$csvFile->current());
}
echo '
';}
$file = new SplFileObject("arbeit.csv");
$file->setFlags(SplFileObject::READ_CSV);
CreateLangTable($file, 1, 31);
CreateLangTable($file, 33, 58);
?>
编辑:如果您有空行划分表然后
while ($csvFile->key() <= $endRow)
您可以使用
while (!empty($csvFile->current()))
您显然可以省略/删除功能参数$endRow
标签:import-from-csv,html-table,php
来源: https://codeday.me/bug/20191121/2052413.html