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