Php 删除在其他文件中找到的行

Php 删除在其他文件中找到的行,php,file,text,replace,find,Php,File,Text,Replace,Find,我有两个文件: text1.txt和text2.txt 如何执行此操作:如果在text1.txt中找到与text2.txt中的行匹配的行,请将其删除(或显示唯一行) 这就是我到目前为止所做的: $a = file('text1.txt'); $b = file('text2.txt'); $contents = ''; foreach($b as $line2) { foreach($a as $line1) { if(!strstr($line1, $line2))

我有两个文件:
text1.txt
text2.txt

如何执行此操作:如果在
text1.txt
中找到与
text2.txt
中的行匹配的行,请将其删除(或显示唯一行)

这就是我到目前为止所做的:

$a = file('text1.txt');
$b = file('text2.txt');
$contents = '';

foreach($b as $line2) {
    foreach($a as $line1) {
        if(!strstr($line1, $line2)) {
            $contents .= $line1; 
        }  
    }
}

file_put_contents('unique.txt', $contents);
这将是:

file_put_contents('unique.txt', array_diff(file('text1.txt'), file('text2.txt')));
-由于您将文件完全加载到RAM中,我认为这是一个可接受的解决方案


此外,您可能需要定义自己的函数来确定字符串是否相等。逻辑将是相同的,但应该使用

似乎你有正确的想法,你得到了什么输出?另外,您可能需要签出array_diff()array_diff是为了从2个文件中查找唯一值,我想检查text.2中的文本是否在text1(primery)中找到,如果是,则删除.Hm。我不确定我是否明白。让我澄清一下:第一个文件中有字符串
'a',b',c',b'
,第二个文件中有字符串
'a',b'
。您希望得到什么结果:
'c',b'
或只是
'c'
?只有c,我有一个主文件,我有另一个文件,我想从em中获取所有在主文件中找不到的行,那么为什么它不是
数组_diff()
?它将完全执行您想要的操作-即删除第二个文件中的所有条目。请参阅:
array_diff()
如果第二个数组中没有相应的条目,则不会删除非唯一条目。