我有一个这样的字符串:
$str = 'this is a string';
这是我的模式:/i/g
。有三次出现(正如您在上面的字符串中看到的那样,它包含三个i
)。现在我需要算一下。我怎么能得到那个号码?
答案 0 :(得分:3)
您可以使用substr_count()以及preg_match_all()
echo substr_count("this is a string", "i"); // will echo 3
echo $k_count = preg_match_all('/i/i', 'this is a string', $out); // will echo 3
将其他方法转换为数组,然后对其进行计数:
$arr = str_split('this is a string');
$counts = array_count_values($arr);
print_r($counts);
<强>输出:强>
Array
(
[t] => 2
[h] => 1
[i] => 3
[s] => 3
[ ] => 3
[a] => 1
[r] => 1
[n] => 1
[g] => 1
)
答案 1 :(得分:2)
您应该使用substr_count()。
$str = 'this is a string';
echo substr_count($str, "i"); // 3
您也可以使用mb_substr_count()
$str = 'this is a string';
echo mb_substr_count($str, "i"); // 3
substr_count - 计算子字符串出现次数
mb_substr_count - 计算子字符串出现次数
答案 2 :(得分:1)
preg_match_all可能更适合。
以下是一个例子:
<?php
$subject = "a test string a";
$pattern = '/a/i';
preg_match_all($pattern, $subject, $matches);
print_r($matches);
?>
打印:
Array ( [0] => Array ( [0] => a [1] => a ) )