我有一个读取CSV文件的脚本。
<?php
echo '<table border="0" cellspacing="1" cellpadding="1" class="sortable" border="1"><caption>Title Here</caption>
<thead><tr><th class="header">Time:</th><th class="header">Value 1:</th><th class="header">Value 2:</th><th class="header">Value 3:</td class="header"><th class="header">Value 4:</th><th class="header">Value 5:</th><th class="header">Value 6:</th><th class="header">Value 7:</th><th class="header">Value 8:</th><th class="header">Value 9:</th></tr></thead><tbody><tr>';
$row = 1;
if (($handle = fopen("data.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
if ($c==9) { echo "<td>".$data[$c] ."</td></tr><tr>";}
else {echo "<td>".$data[$c] ."</td>"; }
}
}
fclose($handle);
}
echo '</tbody></table>';
?>
此脚本只获取数据并将其打印在html表中。我只是想重新安排桌子。 例如,csv可能具有这些内容
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
我希望能成为:
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
继续...... 我有些我需要另外一个循环..我怎么能这样做?
答案 0 :(得分:0)
我不确定你的csv文件是如何布局的,但看起来你可能需要将这些值存储在不同数字的不同数组中,然后在读完整个csv之后遍历这些数组文件。您能否展示一下csv文件的简短示例,以便了解您正在阅读的数据?
答案 1 :(得分:0)
您已将CSV文件读入多维数组。
考虑CSV文件中的每一行现在都是一列(从上到下而不是从左到右)。这称为将行转置为列。
对于表格,您需要遍历每一行,而不是每列。所以你在循环中创建一个循环,如下所示:
<table border="0" cellspacing="1" cellpadding="1" class="sortable" border="1"><caption>Title Here</caption>
<thead><tr><th class="header">Time:</th><th class="header">Value 1:</th><th class="header">Value 2:</th><th class="header">Value 3:</td class="header"><th class="header">Value 4:</th><th class="header">Value 5:</th><th class="header">Value 6:</th><th class="header">Value 7:</th><th class="header">Value 8:</th><th class="header">Value 9:</th></tr></thead><tbody>
<?php
#read CSV file
if (($handle = fopen("data.csv", "r")) !== FALSE) {
$mycsv = array();
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) $mycsv[] = $data;
fclose($handle);
#Find the length of the transposed row
$row_length = count($mycsv);
#Loop through each row (or each line in the csv) and output all the columns for that row
foreach($mycsv[0] as $col_num => $col)
{
echo "<tr>";
for($x=0; $x<$row_length; $x++)
echo "<td>".$mycsv[$x][$col_num]."</td>";
echo "</tr>";
}
}
?>
</tbody></table>
尝试一下,让我知道它是否有效。