【发布时间】:2014-04-22 23:40:43
【问题描述】:
我有以下代码:
$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
所以我认为文本文件中的换行符没有任何问题。
【问题讨论】:
-
乍一看似乎很好 - 我可以在这里在我的机器上复制您的预期结果。这让我想知道是否还有其他事情发生……这些上传的文件吗?深思熟虑:例如,如果第二个文件为空,您将获得结果。可能是第二个文件有问题?
-
尝试使用 FILE_IGNORE_NEW_LINES 作为
file()调用的第二个参数 -
文件已上传。这两个文件中都有数据,所以这不是问题。我只是尝试使用本地文件而不是上传,结果是一样的。
-
感谢马克贝克。请查看我的更新。
-
可能看起来像一个微不足道的问题,但为什么数字
1在您的问题更新中跟随print_r()输出 - 它是一个错字还是实际出现在您的输出中?
标签: php array-difference