Home  >  Article  >  Backend Development  >  PHP string learning counts the number of occurrences of characters

PHP string learning counts the number of occurrences of characters

青灯夜游
青灯夜游Original
2021-08-10 16:10:465094browse

In the previous article, we introduced a case-insensitive method of replacing a given substring with other values. If you are interested, you can click on the link to check → "PHP cleverly uses functions to replace a given substring with * Number (case insensitive) 》. This time we will introduce how to use PHP to count the number of occurrences of characters in a string. You can refer to it if necessary.

I believe that given a string "aaabbccqqwweeab", how to count the number of occurrences of each character? You can use the loop

<?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);
?>

to analyze:

  • Loop the $str string once and record the characters that have appeared in the $strRecord array (only record once, if repeated, Just ignore it).

  • Traverse the $strRecord array and compare each character in the string ($str[$i]) with the value of the array ($strRecord[ ]['key']) for comparison; if a value in the record is the same as this character, record the number of times ($strRecord[]['count']) 1.

Let’s take a look at the output:

PHP string learning counts the number of occurrences of characters

OK, the statistics are out!

But sometimes we don’t need to count all characters, we only need to count the number of occurrences of a specified character/substring. How to do this?

This is also simple, PHP provides a built-in function to solve this problem. Let's take a look at the following example:

<?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子串!";
?>

Analysis: We use "substr_count($str,'a')" and "substr_count($str,'ab') " statement to count the number of occurrences of the "a" character and the "ab" character in the string $str. What do you think this will output? Should "4" and "2" be output? So right? Let's take a look at the output:

PHP string learning counts the number of occurrences of characters

Correct! The number of occurrences of the "a" character and the "ab" character is "4" and "2".

Let’s take a look at the key function substr_count().

The substr_count() function can count the number of times a substring (consisting of one or more characters) appears in a string (case-sensitive).

substr_count($string,$substring,$start,$length)The function accepts 2 required parameters $string and $substring, and 2 omitted parameters $start and $length.

We already know the first two required parameters through the above code example. Let's take a look at the two omitted parameters $start and $length.

  • $start: used to specify where to start searching for substrings in the string

  • $length: used to specify the length of the search

The value returned by the substr_count() function is also different depending on the values ​​set by the parameters $start and $length.

<?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子串!";
?>

Output result:

PHP string learning counts the number of occurrences of characters

Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial

Finally, I recommend reading a classic course "PHP String Processing (Jade Girl Heart Sutra Edition)", it's free~ come and learn !

The above is the detailed content of PHP string learning counts the number of occurrences of characters. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn