Basically i have two files with strings in them separated with a new line.
What i wish to do is get the first string from the first file and compare it to ALL of the strings from the second file. Then get the second string from the first file and compare it to ALL of the strings in the second file then get the third and etc etc.
Currently i have this piece of code, but i am not sure if it is working as i wish it to be
$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';
}
}
Well there is a more efficient way to achieve this. Using array_intersect
you can find the common lines between this two files.
$a = file('file1.txt');
$b = file('file2.txt');
$c = array_intersect($a, $b);
Whatever lines which are common between the two files are found in the $c
array. However do note that the intersection is case sensitive.
Your code works correctly, if you're looking for a more elegant way I would either suggest a bash script or looking at the array_map function (possibly other ones like array_walk, array_filter too.)
That being said, your code is simple and easy to follow so probably the best way to go.
来源:https://stackoverflow.com/questions/7478766/how-do-i-compare-a-string-to-a-list-of-strings-in-php