Как сравнить строку со списком строк в PHP? - PullRequest
1 голос
/ 20 сентября 2011

В основном у меня есть два файла со строками в них, разделенными новой строкой.

Что я хочу сделать, так это получить первую строку из первого файла и сравнить ее со ВСЕМИ строками из второго файла. Затем получите вторую строку из первого файла и сравните ее со ВСЕМИ строками во втором файле, затем получите третью и т. Д. И т. Д.

В настоящее время у меня есть этот кусок кода, но я не уверен, работает ли он так, как я хочу, чтобы он был

$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 ]

2 голосов
/ 20 сентября 2011

Ну, есть более эффективный способ добиться этого.Используя array_intersect, вы можете найти общие строки между этими двумя файлами.

$a = file('file1.txt');
$b = file('file2.txt');
$c = array_intersect($a, $b);

Какие бы строки между двумя файлами не встречались в массиве $c.Однако обратите внимание, что пересечение чувствительно к регистру.

0 голосов
/ 20 сентября 2011

Ваш код работает правильно, если вы ищете более элегантный способ, я бы либо предложил сценарий bash, либо взглянул на функцию array_map (возможно, другие, например, array_walk, array_filter.)

Как говорится, ваш код прост и понятен, так что, вероятно, лучший путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...