如何从PHP中的两个不同文件夹中加入两个文本文件?

时间:2015-11-23 09:03:41

标签: php

我是PHP编程的新手。所以,我想从两个不同的文件夹中加入两个文本文件。 文件看起来像这样。 文件1:

----------------------------------
| customer no | customer details |
----------------------------------
|         1   | ABC Q            |
|         2   | PQR              |
|         3   | XYZ              |

......等等。

文件2:

 1 M
 2 L
 3 Q
 4 V
 5 H
 6 R
 7 T

......等等。

我希望它看起来像这样:

-1 -2 -2 -3 -2 -1 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 
-2 -2 -4 -4 -1 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -1 -2 -1  1 
-2  6 -1 -2 -4  4  0 -3  0 -3 -3  2 -1 -3 -2 -1 -1 -3 -2 -3 
 2 -3 -3 -4 -1 -2 -3 -3 -3  2  3 -3  1 -1 -3 -1 -1 -3 -2  2 
-2  3 -1 -2 -3  1 -1 -3  7 -3 -1  0 -2 -2  1  0 -2 -3  0 -3 
-2  6 -1 -2 -4  0 -1  1 -1 -4 -3  3 -2 -4 -3 -1 -2 -4 -3 -3 
-1 -2  3 -2 -2 -1 -2 -2 -2 -1  1 -2  4 -2  1  0  3 -3 -2  1 

这是我的代码:

1 M -1 -2 -2 -3 -2 -1 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 
2 L -2 -2 -4 -4 -1 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -1 -2 -1  1 
3 Q -2  6 -1 -2 -4  4  0 -3  0 -3 -3  2 -1 -3 -2 -1 -1 -3 -2 -3 
4 V  2 -3 -3 -4 -1 -2 -3 -3 -3  2  3 -3  1 -1 -3 -1 -1 -3 -2  2 
5 H -2  3 -1 -2 -3  1 -1 -3  7 -3 -1  0 -2 -2  1  0 -2 -3  0 -3 
6 R -2  6 -1 -2 -4  0 -1  1 -1 -4 -3  3 -2 -4 -3 -1 -2 -4 -3 -3 
7 T -1 -2  3 -2 -2 -1 -2 -2 -2 -1  1 -2  4 -2  1  0  3 -3 -2  1 

以上代码一直显示此错误:

$files1 = glob("/the path of the first files/");
$files2 = glob("/the path of the first files/");

    foreach($files1 as $file1){
        $a = file('$file1', FILE_IGNORE_NEW_LINES);
        foreach($files2 as $file2){
            $b = file('$file2', FILE_IGNORE_NEW_LINES);
            foreach($a as $key => $value){
                $a[$key] = $value.$b[$key];
            }
            file_put_contents('$file2',implode("\n", $pssm1),FILE_APPEND);
        }

    }

任何人都可以提供帮助? 在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

对于您提供的代码,检查数组索引ID是否存在。(您的错误仅限于此。)

foreach($a as $key => $value){
    if(isset($b[$key])) //  <--- check this line
        $a[$key] = $value.$b[$key];
}

答案 1 :(得分:0)

试试这段代码:

$lines = file('file1.txt');
$lines2 = file('file2.txt');

foreach ($lines as $key => $val) {
    $lines[$key] = $val.$lines2[$key];
}

file_put_contents('final_file.txt', implode("\n", $lines));

答案 2 :(得分:0)

我准备了一份工作代码。试试这个

<?php

$file1 = file_get_contents('file1.txt');
$file2 = file_get_contents('file2.txt');

$data1 = explode("\n", $file1);
$data2 = explode("\n", $file2);

foreach($data1 as $key => $data) {
    if(!isset($data2[$key]))
        continue;
    file_put_contents('File3.txt',$data . ' ' . $data2[$key] . "\n",FILE_APPEND);
}

?>

OUTPUT:

1 M -1 -2 -2 -3 -2 -1 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 
2 L -2 -2 -4 -4 -1 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -1 -2 -1  1 
3 Q -2  6 -1 -2 -4  4  0 -3  0 -3 -3  2 -1 -3 -2 -1 -1 -3 -2 -3 
4 V 2 -3 -3 -4 -1 -2 -3 -3 -3  2  3 -3  1 -1 -3 -1 -1 -3 -2  2 
5 H -2  3 -1 -2 -3  1 -1 -3  7 -3 -1  0 -2 -2  1  0 -2 -3  0 -3 
6 R -2  6 -1 -2 -4  0 -1  1 -1 -4 -3  3 -2 -4 -3 -1 -2 -4 -3 -3 
7 T -1 -2  3 -2 -2 -1 -2 -2 -2 -1  1 -2  4 -2  1  0  3 -3 -2  1 

首先,文件被新行读取并分解,因此我们得到一个数组,其中一行作为该数组的值。

然后我们遍历第一个数组并检查第二个文件中是否存在相同的行。如果没有,那么我们继续我们写的文件,组合用空格分隔。