通过匹配外部文本文件从数组中删除单词


delete words from array by matching external text file

我有一个数组和一个外部文件,都包含很多单词。我想将数组中的字符串与整个外部文件匹配。然后,如果有相同的单词,我想从数组中删除该单词。

更简短的示例:

 $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:如果你的外部文本文件非常大,并且你不想一次将其加载到内存中,则可以逐行读取它,并检查它是否存在于数组中。