删除字符串后多余的逗号

发布于 2024-10-24 05:45:15 字数 297 浏览 2 评论 0原文

我的 CSV 文件中有很多数据。我编写了一些代码来仅提取第 1 列并将其放入 txt 文件中:

fwrite($file2, $data[0].',');

现在,这创建了一个 TXT 文件,其中所有值均以逗号分隔。 但是,在读取最后一个值后,有一个额外的逗号,

我不需要这个,因为当我使用 foreach($splitcontents as $x=> $y) 使用逗号分隔符时,它由于额外的逗号,在末尾读取了一个垃圾值。

如何删除或避免末尾的逗号?

I have a lot of data in a CSV file. I wrote some code to extract only column 1 and put it in a txt file:

fwrite($file2, $data[0].',');

Now, this created a TXT file with all values separated by a comma.
However, after the last value was read there was an extra comma

I don't need this, because when I used foreach($splitcontents as $x=> $y) using a comma delimiter, it reads a garbage value at the end because of the extra comma.

How do I remove or avoid the comma at the end?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红ご颜醉 2024-10-31 05:45:15

使用 fputcsv() 而不是错误地重新实现它。

Use fputcsv() instead of misreimplementing it.

梦忆晨望 2024-10-31 05:45:15

,而不是自行按字段组装 CSV 文件:

while (...) {
    fputcsv($file2, array($data[0], $data[1], $data[22])  );

您可以使用 fputcsv() 来将其转换为正确的格式 第二个参数必须是一个数组。如果您确实只想要一列,则忽略其余部分。

另外,要读回文件,请查看 fgetcsv()。这可能会简化您的 foreach + $splitstring 方法。

Instead of assembling the CSV file yourself field-wise you could use fputcsv() which puts it into the right format:

while (...) {
    fputcsv($file2, array($data[0], $data[1], $data[22])  );

The second parameter must be an array. If you really only want one column, then leave out the rest.

Also for reading the files back in, check out fgetcsv(). This might simplify your foreach + $splitstring approach.

黑寡妇 2024-10-31 05:45:15

解决该问题的一种方法是在拆分第二个文件之前对从第二个文件加载的数据使用 rtrim($data, ',')。这将删除尾随的逗号。

如果您想修复文件本身,可以这样做:

ftruncate($file2, ftell($file2)-1);

您必须在调用 fclose() 之前执行此操作

One way to solve the problem is to use rtrim($data, ',') on the data you load from the second file before splitting it. This will remove the trailing comma.

If you want to fix the file itself, you can do this:

ftruncate($file2, ftell($file2)-1);

You have to do this just before you call fclose()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文