计算PHP中某些单词在行中包含的次数

时间:2017-06-25 09:16:44

标签: php arrays

我想知道如何搜索某些单词,并获得在文件中计算的数量的结果。我已经将它集成在计算所有行的位置,以便检查每行中的每个单词。但是我在计算其中一个单词包含在一行中的次数时遇到了问题。

让我们说文本文件看起来像这样:

cars have wheels
you can drive cars
1337 is Leet
the beauty of cars
too much cars
something else
good breakfast could be eggs
eggs does not smell good
flying cars could be the future

我希望数组看起来像这样:

words = cars,eggs,1337

array{
    "cars" => 5,
    "eggs" => 2,
    "1337" => 1
}

到目前为止我已经设置了这段代码:

$words = explode(',', 'word1,word2,word3');

$handle = fopen('/path/to/file.txt', "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        foreach ($words as $value => $number) {
            if (strpos($line, $value) !== false) {
                $words[$number] = $words[$number] + 1;
            }
        }
    }

    fclose($handle);
}

var_dump($words)

此代码输出:

array(1) { 
    [0]=> array(3) { 
        [0]=> string(10) "cars" 
        [1]=> string(9) "eggs" 
        [2]=> string(10) "1337" 
    } 
}

我知道我不需要为每一行执行此操作,但是我从此问题中删除了更多代码(包括以某种方式计数和回显)。 在我应该为每个单词添加+1的部分,我似乎做错了,但我只是不明白如何正确处理数组。

0 个答案:

没有答案