fegtcsv完成了在php中获取csv文件数据的工作 我写了这段代码来从我的输入文件中获取数据
<?php
$file_handle = fopen("input.csv", "r");
while(!feof($file_handle)){
$line_of_text=fgetcsv($file_handle,3020);
$a= $line_of_text[1];
$b=$line_of_text[2];
$c=$line_of_text[3];
$d=$line_of_text[4];
}
fclose($file_handle);
?>
现在我想要做的是在每一行的第三个数据(即$ c)之间进行一些物质操作。例如。在第1行添加$ c和第2行的$ c以及更多的数学运算。只有当我可以将这些数据作为c1获得时,我才能这样做,这将是第一行c2的$ c,即第二行的$ c。但我不知道该怎么做。上面的脚本打印文件的每一行。我无法控制要打印哪一行(或行)的数据。我怎么做 ?我缺少阅读或学习的任何东西?请告诉我。
答案 0 :(得分:0)
每次拨打fgetcsv
时,您都会获得另一条线路。因此:
while (!feof($file_handle)){
$line_of_text = fgetcsv($file_handle, 3020);
$a1 = $line_of_text[1];
$b1 = $line_of_text[2];
$c1 = $line_of_text[3];
$d1 = $line_of_text[4];
$line_of_text = fgetcsv($file_handle, 3020);
$a2 = $line_of_text[1];
$b2 = $line_of_text[2];
$c2 = $line_of_text[3];
$d2 = $line_of_text[4];
$line_of_text = fgetcsv($file_handle, 3020);
$a3 = $line_of_text[1];
$b3 = $line_of_text[2];
$c3 = $line_of_text[3];
$d3 = $line_of_text[4];
echo $a1 + $a2 + $a3;
}
提示:你也可以在循环中使用循环......
答案 1 :(得分:0)
在将每一行存储在数组中之后,请尝试以下行...
$csv = array();
$file = fopen('source.csv', 'r');
while (($result = fgetcsv($file,0,";")) !== false)
{
$csv[] = $result;
}
fclose($file);
function content_to_columns($data){
foreach ($data as $line=>$value){
$data[$line]=explode(";",$value);
}
print_r[$data]; //comment when not needed.
}
content_to_columns($csv_file); //
然后你可以真正得到任何值知道线和列数让我们说 你的数据是
A | B
10| 0
20|20
$ csv [0] [0]是10
使用它进行操作数学运算就像:
$csv[0][0]*=5; //multiplies by 5 the cell value