>  기사  >  백엔드 개발  >  PHP 문자열 학습은 문자 발생 횟수를 계산합니다.

PHP 문자열 학습은 문자 발생 횟수를 계산합니다.

青灯夜游
青灯夜游원래의
2021-08-10 16:10:465099검색

이전 글에서는 주어진 하위 문자열을 다른 값으로 바꾸는 대소문자를 구분하지 않는 방법을 소개했습니다. 관심이 있으시면 링크를 클릭하여 → "PHP는 주어진 하위 문자열을 *로 바꾸는 함수를 영리하게 사용합니다. (대문자 및 소문자) 구분하지 않음)》. 이번에는 PHP를 사용하여 문자열에서 문자의 발생 횟수를 계산하는 방법을 소개합니다. 필요한 경우 참고할 수 있습니다.

문자열 "aaabbccqqwweeab"이 주어지면 각 문자의 발생 횟수를 어떻게 계산할 수 있나요?

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
//统计字符串中出现的字符,出现次数
$str = &#39;aaabbccqqwweeab&#39;;//字符串示例
echo "字符串为:".$str.&#39;<br/>&#39;;
$strRecord=array();//把出现过的字符记录在此数组中,如果记录有,则不记录,
for($i=0;$i<strlen($str);$i++){
 $found = 0;//默认设置为没有遇到过
 foreach((array)$strRecord as $k=>$v){
  if($str[$i] == $v[&#39;key&#39;]){
   $strRecord[$k][&#39;count&#39;] += 1;//已经遇到,count + 1;
   $found = 1;//设置已经遇到过的,标记
   continue;//如果已经遇到,不用再循环记录数组了,继续下一个字符串比较
  }
 }
 if(!$found){
  $strRecord[] = array(&#39;key&#39;=>$str[$i],&#39;count&#39;=>1);//记录没有遇到过的字符串
 }
}
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($strRecord);
?>

루프를 사용하여 분석할 수 있습니다.

  • $str 문자열을 한 번 루프하고 $strRecord 배열에 나타나는 문자를 기록합니다(한 번만 기록하고 반복되는 경우 무시합니다).

  • $strRecord 배열을 탐색하고 문자열($str[$i])의 각 문자와 배열 값($strRecord[]['key'])을 비교합니다. ) 비교를 위해, 레코드의 값이 이 문자와 동일하면 횟수 ($strRecord[]['count']) + 1을 기록합니다. $str[$i])和数组的值($strRecord[]['key'])进行比较;如果记录里的某个值和这个字符一样,就记录次数($strRecord[]['count'])+1。

我们来看看输出结果:

PHP 문자열 학습은 문자 발생 횟수를 계산합니다.

OK,统计出来了!

但有时我们不需要统计全部字符,只需要计算指定的一个字符/子串的出现次数,这样怎么操作?

这也简单,PHP提供了一个内置函数可以解决这个问题。我们来看看下面一个例子:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$str = &#39;aaabbccqqwweeab&#39;;
echo "字符串为:".$str.&#39;<br/><br/>&#39;;

echo "字符串中出现了 ".substr_count($str,&#39;a&#39;)." 次 a字符!";

echo "<br/><br/>字符串中出现了 ".substr_count($str,&#39;ab&#39;)." 次 ab子串!";
?>

分析:我们使用“substr_count($str,'a')”和“substr_count($str,'ab')”语句来统计字符串$str中“a”字符和“ab”字符的出现次数。大家觉得这个会输出什么?是不是应该输出“4”和“2”呀。那么对不对?我们来看一下输出结果:

PHP 문자열 학습은 문자 발생 횟수를 계산합니다.

正确!“a”字符和“ab”字符的出现次数就是“4”和“2”。

下面我们来了解一下这其中的关键函数substr_count()。

substr_count()函数可以计算子串(由一个或多个字符组成)在字符串中出现的次数(区分大小写)。

substr_count($string,$substring,$start,$length)

출력을 살펴보겠습니다.
  • PHP 문자열 학습은 문자 발생 횟수를 계산합니다.

    알겠습니다. 통계가 나왔습니다!
  • 하지만 때로는 모든 문자를 계산할 필요가 없고 지정된 문자/하위 문자열의 발생 횟수만 계산하면 됩니다. 어떻게 해야 할까요?

    이것도 간단합니다. PHP는 이 문제를 해결하기 위한 내장 함수를 제공합니다. 다음 예를 살펴보겠습니다.
  • <?php
    header("Content-Type: text/html;charset=utf-8");    //设置字符编码
    $str = &#39;aaabbccqqwweeab&#39;;
    echo "字符串为:".$str.&#39;<br/><br/>&#39;;
    
    echo "字符串中出现了 ".substr_count($str,&#39;a&#39;,0,5)." 次 a字符!";
    echo "<br/>字符串中出现了 ".substr_count($str,&#39;a&#39;,2,5)." 次 a字符!";
    echo "<br/><br/>字符串中出现了 ".substr_count($str,&#39;ab&#39;,0,10)." 次 ab子串!";
    echo "<br/>字符串中出现了 ".substr_count($str,&#39;ab&#39;,3)." 次 ab子串!";
    ?>
분석: "substr_count($str,'a')" 및 "substr_count($str,'ab')를 사용합니다. $str 문자열에서 "a" 문자와 "ab" 문자의 발생 횟수를 계산하려면 code >" 문을 사용하세요. 이것이 어떤 결과를 가져올 것이라고 생각하시나요? "4"와 "2"가 출력되어야 합니까? 그렇죠? 출력을 살펴보겠습니다. <p></p> <img src="https://img.php.cn/upload/image/772/873/472/1628582516539367.png" title="1628582516539367.png" alt="2 .png"><p></p>맞습니다! "a" 문자와 "ab" 문자의 발생 횟수는 "4"와 "2"입니다. <p><img src="https://img.php.cn/upload/image/917/253/460/162858295983491PHP%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%ED%95%99%EC%8A%B5%EC%9D%80%20%EB%AC%B8%EC%9E%90%20%EB%B0%9C%EC%83%9D%20%ED%9A%9F%EC%88%98%EB%A5%BC%20%EA%B3%84%EC%82%B0%ED%95%A9%EB%8B%88%EB%8B%A4." title="162858295983491PHP 문자열 학습은 문자 발생 횟수를 계산합니다." alt="PHP 문자열 학습은 문자 발생 횟수를 계산합니다.">주요 함수 substr_count()를 살펴보겠습니다. </p> <p>substr_count() 함수는 하위 문자열(하나 이상의 문자로 구성)이 문자열에 나타나는 횟수(대소문자 구분)를 계산할 수 있습니다. <a href="https://www.php.cn/course/list/29.html" target="_blank"></a><code>substr_count($string,$substring,$start,$length)이 함수는 2개의 필수 매개변수 $string 및 $substring과 2개의 생략된 매개변수 $start 및 $length를 허용합니다.

위의 코드 예시를 통해 처음 두 개의 필수 매개변수를 이미 알고 있습니다. 두 개의 생략된 매개변수 $start 및 $length를 살펴보겠습니다.

🎜$start: 문자열에서 하위 문자열 검색을 시작할 위치를 지정하는 데 사용됩니다. 🎜🎜🎜🎜$length: 검색 길이를 지정하는 데 사용됩니다. 🎜🎜🎜🎜 매개변수 $start에 의해 설정된 값에 따라 다름 및 $length, substr_count () 함수에서 반환되는 값도 다릅니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜🎜마지막으로 클래식 강좌인 "🎜PHP 문자열 처리(옥소녀심경편)🎜"을 읽어보시길 추천합니다. 무료입니다~ 와서 배워보세요! 🎜

위 내용은 PHP 문자열 학습은 문자 발생 횟수를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.