我有一个CSV文件,其布局如下:
Column1 Column2 Column3
34 56 7
45 55 10
34 40 12
并执行以下操作的代码。
$row=1
if (($handle = fopen("report.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($row == 1){ $row++; continue; }
$num = count($data);
$row++;
$column1 = $column1 . ", ". $data[1];
$column2 = $column2 . ", ". $data[2];
$column3 = $column3 . ", ". $data[3];
}
fclose($handle);
}
$column1 = ltrim ($column1 ,','); //removes first comma from string
$column2 = ltrim ($column2 ,',');
$column3 = ltrim ($column3 ,',');
这将产生三个字符串,这些字符串用于绘制图形。
"34,45,34"
"56,55,40"
"7,10,12"
但是,我可能会在csv文件中添加更多的列,因此我需要一种循环方法,以避免每次都必须手动添加新行。我似乎找不到一种执行循环的方法,该循环将自动为各列提供变量名称而不会中断。
有什么建议吗?
使用字符串数组columns
代替$ column1,2,3 ..:
...
$num = count($data);
$row++;
for($i=0; $i<$num; $i++){
$columns[$i] = $columns[$i] . ", ". $data[$i];
}
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句