【发布时间】:2015-08-24 02:05:30
【问题描述】:
我的 csv 文件中有两列:first_column 和 second_column。我想将第二列中的所有行分组为一个用“,”分隔的字符串,如果它们在第一列中都有相同的单词,则将它们输出到文本文件中。
first_column second_column
a Chris
a Jake
a Paula
b Anita
b Lionel
b Sheila
期望的输出
a: Chris, Jake, Paula
b: Anita, Lionel, Sheila
这是我尝试过的。我似乎只收到来自 second_column 的第一个字母。任何指针都会很棒。
$csv_file = fopen("test.csv", "r");
$text_file = fopen("test.txt","w");
$data = array();
if ($csv_file)
{
while (($line = fgets($csv_file)) !== false)
{
$column_1 = $line[0];
$column_2 = $line[1];
if (!empty($column_1))
{
$data [$column_1] = column_2;
}
}
fclose($csv_file);
fclose($text_file);
}
else
{
// error opening the file.
}
//print_r($data);
【问题讨论】:
-
你的 csv 行是由什么分隔的,由哪个分隔符分隔?
-
@Rizier123 换行?
-
对不起,写得不是很清楚我的意思是你的专栏,用逗号,分号?
-
那么这个问题我们在哪里?
-
@Rizier123 显然我看到我的错误是 fgets 而不是 fgetcsv 这给了我 csv 文件中的第二个字符而不是第二列。我设法通过更改该行并进行了一些更改来修复它。