如何从每列中获取值并将它们组合成一个循环中的字符串

时间:2013-09-10 14:45:28

标签: php loops csv

我有一个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文件中添加更多列,所以我需要一种循环方式来避免每次都手动添加新行。 我似乎无法找到一种方法来执行一个循环,它会自动为列提供变量名称而不会破坏它。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用columns的字符串数组而不是$ column1,2,3 ..:

    ...
    $num = count($data);
    $row++;

    for($i=0; $i<$num; $i++){
        $columns[$i] = $columns[$i] . ", ". $data[$i];
    }
    ...