我有2个文件:
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);
答案 0 :(得分:1)
那将是:
file_put_contents('unique.txt', array_diff(file('text1.txt'), file('text2.txt')));
- 因为你将文件完全加载到RAM中,我认为这是可以接受的解决方案。
此外,您可能希望定义自己的函数以确定字符串是否相等。那么逻辑将是相同的,但应该使用array_udiff()