我接受了一次采访,我可以使用我想要的任何语言来计算每个单词出现在文本文件中的次数.
我通过读取每个单词并将其添加到树结构中来解决它 - 如果单词在结构中已经准备就绪,算法会将一个添加到我在节点中添加的计数器中.
好吧,这个人说我需要很多代码并且它很混乱,并说我可以用大约3行代码在PHP中完成它.
我开始使用explode()它将字符串分成一个单词数组,但之后就被卡住了.
有没有人知道如何使用几行代码在PHP中完成这项工作?
一种简单的方法是将整个文件作为字符串读取file_get_contents(),将其拆分为空格,然后运行生成的数组array_count_values()
$file = file_get_contents( 'text_file.txt');
$array = preg_split( '/\s+/', $file);
$counts = array_count_values( $array);
Run Code Online (Sandbox Code Playgroud)
完成!
然而,这并不完美,因为标点符号会使你的数量陷入困境.因此,正如Mark Baker所指出的那样,我们可以回到原来的方法来获取文件中的所有单词str_word_count(),然后通过array_count_values()以下方式运行该数组:
$file = file_get_contents( 'text_file.txt');
$words = str_word_count( $file, 1);
$counts = array_count_values( $words);
Run Code Online (Sandbox Code Playgroud)