基本上我有两个文件,其中的字符串用新行分隔。
我想要做的是从第一个文件中获取第一个字符串,并将其与第二个文件中的所有字符串进行比较。然后从第一个文件中获取第二个字符串,并将其与第二个文件中的所有字符串进行比较,然后获取第三个等等。
目前我有这段代码,但我不确定它是否正常工作
$file = file_get_contents("file1.txt");
$pieces = explode("\n", trim($file));
foreach($pieces as $piece)
{
$file2 = file_get_contents("file2.txt");
$pieces2 = explode("\n", trim($file2));
foreach($pieces2 as $piece2)
{
if($piece == $piece2)
echo 'yes';
}
}
答案 0 :(得分:2)
有一种更有效的方法来实现这一目标。使用array_intersect
,您可以找到这两个文件之间的公共线。
$a = file('file1.txt');
$b = file('file2.txt');
$c = array_intersect($a, $b);
在$c
数组中找到两个文件之间共同的行。但请注意,交叉点区分大小写。
答案 1 :(得分:0)
您的代码正常运行,如果您正在寻找更优雅的方式,我会建议使用bash脚本或查看array_map函数(可能还有其他类似array_walk,array_filter。)
话虽如此,您的代码很简单易懂,可能是最好的方法。