我有一个数组和一个外部文件,两者都包含很多单词。我想将数组中的字符串与整个外部文件进行匹配。然后,如果有相同的单词,我想从数组中删除该单词。
很简短的例子:
$words = {"apple", "orange", "banana", "grape", "peach"}
外部文本文件是纯文字列表
apple
banana
melon
...
我想删除外部文件中的单词,最后得到它。
$words = {"orange", "grape", "peach"}
我应该调用外部文件,对每一行进行切片,然后将它们保存到另一个数组中吗?然后与源数组进行比较? 比较数组和文本文件的最有效方法是什么? 我很感激你的智慧!
答案 0 :(得分:3)
您可以使用array_diff。(file从文件中获取数组。)
$result = array_diff($words, file('path_to_file', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));
PS:如果您的外部文本文件非常大,并且您不想一次将其加载到内存中,您可以逐行读取它,并检查它是否存在于数组中。