0

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

大大缩短示例:

 $words = {"apple", "orange", "banana", "grape", "peach"}

外部文本文件是一个纯单词列表

apple
banana
melon
...

我想删除外部文件中的单词,最后得到这个。

$words = {"orange", "grape", "peach"}

我应该调用外部文件,对每一行进行切片,然后将它们保存到另一个数组中吗?然后与源数组进行比较?比较数组和文本文件的最有效方法是什么?我很感激你的智慧!

4

1 回答 1

3

您可以使用array_diff .( file从文件中获取数组。)

$result = array_diff($words, file('path_to_file', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));

PS:如果你的外部文本文件很大,不想一次加载到内存中,可以逐行读取,检查是否存在于数组中。

于 2012-05-22T03:23:44.103 回答