How do i compare a string to a list of strings in PHP?

孤街浪徒 提交于 2019-12-02 09:37:26

问题


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

回答1:


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.




回答2:


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!