计算php字符串中特定单词的数量

时间:2017-12-08 10:08:37

标签: php regex

我有一个如下的php字符串:

 $string = 'www absjdjjd www123 dkkd www wwww ghy ww';

如何计算不。单词只有“www”出现在这个字符串中。这个字符串中有两个单词,所以结果应该是2。 我尝试了类似下面的东西,但没有工作。

$val = 'www';
$count = substr_count($string, $val);

4 个答案:

答案 0 :(得分:1)

此代码可以帮助您

详细信息:使用explode函数将字符串转换为array,最后将loopcondition

一起使用
<?php
    $string = 'www absjdjjd www123 dkkd www wwww ghy ww';
    $a=explode(" ",$string);
    print_r($a);
    $count=0;
    foreach($a as $value)
    {
        if($value=="www")
        {
            $count++;
        }
    }
    print_r($count);
    ?>

sandbox output

答案 1 :(得分:0)

使用正则表达式,它更快,使用更少的内存然后爆炸,循环和计数:

<?php
$string = 'www absjdjjd www123 dkkd www wwww ghy ww';
echo preg_match_all('/\bwww\b/', $string, $matches); // 2

答案 2 :(得分:0)

使用explode()array_count_values()

<?php
$string = 'www absjdjjd www123 dkkd www wwww ghy ww';

$arr = array_count_values(explode(" ", $string));

echo isset($arr['www']) ? $arr['www'] : 0; //2

答案 3 :(得分:0)

如果您只想匹配www,则可以使用\bwww\b来查找wwwa solution like this之间的\b

$string = 'www absjdjjd www123 dkkd www wwww ghy ww';
preg_match_all('/\bwww\b/', $string, $matches);
var_dump($matches);

将导致:

array(1) {
    [0]=>
  array(2) {
        [0]=>
    string(3) "www"
        [1]=>
    string(3) "www"
  }
}