PHP语言:如何计算出字符串中某个字符串出现的次数?
比如求出fdjborsnabcdtghrjosthabcrgrjtabc中的abc出现的次数。...
比如求出 fdjborsnabcdtghrjosthabcrgrjtabc 中的 abc 出现的次数。
展开
4个回答
展开全部
php内置就有个函数可以的 翻翻php手册就能找到的
substr_count
(PHP 4, PHP 5)
substr_count — 计算字串出现的次数
说明
intsubstr_count ( string$haystack , string$needle [, int$offset = 0 [, int$length ]] )
substr_count() 返回子字符串needle 在字符串 haystack 中出现的次数。注意 needle 区分大小写。
参数haystack在此字符串中进行搜索。
needle要搜索的字符串。
offset开始计数的偏移位置。
length指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息。
返回值 该函数返回整型。
substr_count
(PHP 4, PHP 5)
substr_count — 计算字串出现的次数
说明
intsubstr_count ( string$haystack , string$needle [, int$offset = 0 [, int$length ]] )
substr_count() 返回子字符串needle 在字符串 haystack 中出现的次数。注意 needle 区分大小写。
参数haystack在此字符串中进行搜索。
needle要搜索的字符串。
offset开始计数的偏移位置。
length指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息。
返回值 该函数返回整型。
2012-11-11 · 知道合伙人互联网行家
关注
展开全部
很多实现方法的。
1、利用abc进行分词,如果为1,则max(0,-1)=0,若大于等于1,explode结果减1即为abc个数。
echo max(0,count(explode('abc',$str))-1);
2、利用str_replace函数count属性,str_replace('abc','',$str,$count);echo $count;
3、preg_match_all('/abc/',$str,$matches);echo count($matches);
1、利用abc进行分词,如果为1,则max(0,-1)=0,若大于等于1,explode结果减1即为abc个数。
echo max(0,count(explode('abc',$str))-1);
2、利用str_replace函数count属性,str_replace('abc','',$str,$count);echo $count;
3、preg_match_all('/abc/',$str,$matches);echo count($matches);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
概括起来两个方法吧。
方法一
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/[abc]+/i','',$string);
方法二
把字符串转化成数组
$arr = str_split($string);
foreach( $arr as $key => $value ){
if( in_array($value,array('a','b','c')) ){
unset($arr[$key]);
}
}
$string = implode('',$arr);
强烈推荐方法一,方法二不支持字符串中有中文。
方法一
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/[abc]+/i','',$string);
方法二
把字符串转化成数组
$arr = str_split($string);
foreach( $arr as $key => $value ){
if( in_array($value,array('a','b','c')) ){
unset($arr[$key]);
}
}
$string = implode('',$arr);
强烈推荐方法一,方法二不支持字符串中有中文。
追问
我想“计算出字符串中某个字符串出现的次数”,不是要“删除字符串中的某个字符串”
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$str = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$find = 'abc';
preg_match_all('/'.$find.'/', $str, $matches);
// 输出 3
echo count($matches[0]);
$find = 'abc';
preg_match_all('/'.$find.'/', $str, $matches);
// 输出 3
echo count($matches[0]);
追问
。。这么晚
追答
大半年了楼主问题还没解决?吼吼~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询