当前位置: 首页> 最新文章列表> 如何结合substr_count和str_replace函数删除特定子串后计算剩余子串的出现次数?

如何结合substr_count和str_replace函数删除特定子串后计算剩余子串的出现次数?

gitbox 2025-09-19
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 标题: 如何结合substr_count和str_replace函数删除特定子串后计算剩余子串的出现次数?</span></span><span>
</span><span><span class="hljs-comment">// 作者: ChatGPT</span></span><span>
</span><span><span class="hljs-comment">// 日期: 2025-08-30</span></span><span>

</span><span><span class="hljs-comment">// 本文将介绍如何利用 PHP 中的 substr_count 和 str_replace 两个函数,</span></span><span>
</span><span><span class="hljs-comment">// 实现先删除特定子串,再统计剩余子串出现次数的实用技巧。</span></span><span>

</span><span><span class="hljs-comment">// ---------------------------- 正文开始 ----------------------------</span></span><span>

<span class="hljs-comment">/**
 * 在字符串处理中,我们经常会遇到这样的需求:
 *   1. 删除某个特定的子串。
 *   2. 在删除后的结果中,统计另一个子串出现的次数。
 * 
 * PHP 提供的 `str_replace` 和 `substr_count` 两个函数配合使用,能够非常高效地完成这个任务。
 * 
 * 下面我们通过一个示例来说明。
 */</span>

</span><span><span class="hljs-variable">$original</span></span><span> = </span><span><span class="hljs-string">"apple-banana-apple-orange-apple-banana"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"原始字符串: "</span></span><span> . </span><span><span class="hljs-variable">$original</span></span><span> . PHP_EOL;

</span><span><span class="hljs-comment">// 第一步:删除特定子串(例如 "banana")</span></span><span>
</span><span><span class="hljs-variable">$removed</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>(</span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">""</span></span><span>, </span><span><span class="hljs-variable">$original</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"删除 'banana' 后: "</span></span><span> . </span><span><span class="hljs-variable">$removed</span></span><span> . PHP_EOL;

</span><span><span class="hljs-comment">// 第二步:统计剩余字符串中 "apple" 出现次数</span></span><span>
</span><span><span class="hljs-variable">$count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr_count</span></span><span>(</span><span><span class="hljs-variable">$removed</span></span><span>, </span><span><span class="hljs-string">"apple"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"删除后 'apple' 出现次数: "</span></span><span> . </span><span><span class="hljs-variable">$count</span></span><span> . PHP_EOL;

<span class="hljs-comment">/**
 * 输出结果:
 * 原始字符串: apple-banana-apple-orange-apple-banana
 * 删除 'banana' 后: apple--apple-orange-apple-
 * 删除后 'apple' 出现次数: 3
 * 
 * 可以看到,先通过 str_replace 去除不需要的子串,再用 substr_count 统计目标子串的次数,
 * 就能轻松完成需求。
 */</span>

</span><span><span class="hljs-comment">// 补充说明:</span></span><span>
</span><span><span class="hljs-comment">// - `str_replace` 会将目标子串全部替换成指定内容,这里我们替换为空字符串即可达到删除的效果。</span></span><span>
</span><span><span class="hljs-comment">// - `substr_count` 则是用来统计子串在字符串中出现的次数。</span></span><span>
</span><span><span class="hljs-comment">// - 如果需要更复杂的替换或统计逻辑,也可以结合正则函数(如 preg_replace、preg_match_all)。</span></span><span>

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>