0

我有 2 个文件: text1.txttext2.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);
4

1 回答 1

1

那将是:

file_put_contents('unique.txt', array_diff(file('text1.txt'), file('text2.txt')));

- 由于您将文件完全加载到 RAM 中,我认为这是可以接受的解决方案。

此外,您可能希望定义自己的函数来确定字符串是否相等。然后逻辑将相同,但应使用array_udiff()

于 2013-11-06T07:37:05.693 回答