PHP:如何在合并三个或更多文件中的每一行后将正确的输出到文件中?

时间:2016-09-21 21:59:23

标签: php merge output

我正在尝试合并三个或更多文件中的所有行。每行必须与这些文件中的每一行合并。每个文件可以有任意数量的行。

文件内容如下:

file1.txt:
    file1 line1
    file1 line2
file2.txt:
    file2 line1
    file2 line2
file3.txt:
    file3 line1
    file3 line2

作为一个PHP新手,我写了这样一段代码:

<?php
$file1 = file("file1.txt");
$file2 = file("file2.txt");
$file3 = file("file3.txt");
$file777 = fopen("file777.txt", "w");
for($f1=0;$f1<count($file1);$f1++)
    for($f2=0;$f2<count($file2);$f2++)
        for($f3=0;$f3<count($file3);$f3++)
            fwrite($file777, "$file1[$f1] $file2[$f2] $file3[$f3]");
fclose($file777);
?>

但是在结果文件中我得到了这样的混乱:

file1 line1
 file2 line1
 file3 line1
file1 line1
 file2 line1
 file3 line2file1 line1
 file2 line2 file3 line1
file1 line1
 file2 line2 file3 line2file1 line2 file2 line1
 file3 line1
file1 line2 file2 line1
 file3 line2file1 line2 file2 line2 file3 line1
file1 line2 file2 line2 file3 line2

而不是像这样的所需结果:

file1 line1 file2 line1 file3 line1
file1 line1 file2 line1 file3 line2
file1 line1 file2 line2 file3 line1
file1 line1 file2 line2 file3 line2
file1 line2 file2 line1 file3 line1
file1 line2 file2 line1 file3 line2
file1 line2 file2 line2 file3 line1
file1 line2 file2 line2 file3 line2

你能帮我找一个合适的产品吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您并未删除每行末尾的换行符。

来自php.net手册的文件()

返回数组中的文件。数组的每个元素对应于文件中的一行,仍然附加换行符。失败时,file()返回FALSE。

使用trim删除换行符。

rem These fail:
set /A -020000000000
set /A +020000000000

答案 1 :(得分:0)

当你调用file()时,输出包含数组每个元素中的换行符。所以,你需要在写完后修剪()每一行:

ax.add_patch(patches.Rectangle((0, 0), 1, 1, transform=ax.transAxes, facecolor=plot_area_color, zorder=1))

最后一个没有被修剪,以保留换行符。