如何将字符串与PHP中的字符串列表进行比较?

时间:2011-09-20 00:15:37

标签: php string compare

基本上我有两个文件,其中的字符串用新行分隔。

我想要做的是从第一个文件中获取第一个字符串,并将其与第二个文件中的所有字符串进行比较。然后从第一个文件中获取第二个字符串,并将其与第二个文件中的所有字符串进行比较,然后获取第三个等等。

目前我有这段代码,但我不确定它是否正常工作

$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';
    }
}

2 个答案:

答案 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。)

话虽如此,您的代码很简单易懂,可能是最好的方法。