0

次のコードがあります。

$l1 = file($file1['tmp_name']);// get file 1 contents
$l2 = file($file2['tmp_name']);// get file 2 contents
$l3 = array_diff($l1, $l2);// create diff array

ファイルは次のとおりです。 ファイル 1:

6974527983
6974527984
6974527985

ファイル 2:

6974527983

$l3 は次のようになります。

6974527984
6974527985

しかし、代わりに、ファイル 1 から値を吐き出しているだけです。

6974527983
6974527984
6974527985

これを正しく設定していますか?

更新 - print_r() を使用して、ロードされているファイルが配列に適切に解析されていることを確認しました: ファイル 1 -

Array ( [0] => 6974527983 [1] => 6974527984 [2] => 6974527985 ) 1

ファイル 2 -

Array ( [0] => 6974527983 ) 1

したがって、テキスト ファイルの改行に問題があるとは思いません。

4

3 に答える 3

0

各数値が新しい行にある場合は、各ファイルを改行で分割し、その方法で配列を比較してみてください。

$l1 = explode("\n", file($file1['tmp_name']));
$l2 = explode("\n", file($file2['tmp_name']));
$l3 = array_diff($l1, $l2);
于 2014-04-22T23:45:16.193 に答える