Dans l'article précédent, nous avons présenté la méthode insensible à la casse pour remplacer une sous-chaîne donnée par d'autres valeurs. Si vous êtes intéressé, vous pouvez cliquer sur le lien pour lire → "PHP utilise intelligemment des fonctions pour remplacer une sous-chaîne donnée par un *. (majuscules et minuscules) Insensible)》. Cette fois, nous allons présenter comment utiliser PHP pour compter le nombre d'occurrences de caractères dans une chaîne. Vous pouvez vous y référer si nécessaire.
Je crois, étant donné une chaîne "aaabbccqqwweeab", comment compter le nombre d'occurrences de chaque caractère ? Vous pouvez utiliser la boucle
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 //统计字符串中出现的字符,出现次数 $str = 'aaabbccqqwweeab';//字符串示例 echo "字符串为:".$str.'<br/>'; $strRecord=array();//把出现过的字符记录在此数组中,如果记录有,则不记录, for($i=0;$i<strlen($str);$i++){ $found = 0;//默认设置为没有遇到过 foreach((array)$strRecord as $k=>$v){ if($str[$i] == $v['key']){ $strRecord[$k]['count'] += 1;//已经遇到,count + 1; $found = 1;//设置已经遇到过的,标记 continue;//如果已经遇到,不用再循环记录数组了,继续下一个字符串比较 } } if(!$found){ $strRecord[] = array('key'=>$str[$i],'count'=>1);//记录没有遇到过的字符串 } } echo '<pre class="brush:php;toolbar:false">'; print_r($strRecord); ?>
pour analyser :
bouclez une fois la chaîne $str et enregistrez les caractères qui sont apparus dans le tableau $strRecord (n'enregistrez qu'une seule fois, en cas de répétition, ignorez-la).
Parcourez le tableau $strRecord et comparez chaque caractère de la chaîne ($str[$i]
) et la valeur du tableau ($strRecord[]['key'] < /code>) à des fins de comparaison ; si une valeur dans l'enregistrement est la même que ce caractère, enregistrez le nombre de fois (<code>$strRecord[]['count']
) + 1. $str[$i]
)和数组的值($strRecord[]['key']
)进行比较;如果记录里的某个值和这个字符一样,就记录次数($strRecord[]['count']
)+1。
我们来看看输出结果:
OK,统计出来了!
但有时我们不需要统计全部字符,只需要计算指定的一个字符/子串的出现次数,这样怎么操作?
这也简单,PHP提供了一个内置函数可以解决这个问题。我们来看看下面一个例子:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $str = 'aaabbccqqwweeab'; echo "字符串为:".$str.'<br/><br/>'; echo "字符串中出现了 ".substr_count($str,'a')." 次 a字符!"; echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab')." 次 ab子串!"; ?>
分析:我们使用“substr_count($str,'a')
”和“substr_count($str,'ab')
”语句来统计字符串$str中“a”字符和“ab”字符的出现次数。大家觉得这个会输出什么?是不是应该输出“4”和“2”呀。那么对不对?我们来看一下输出结果:
正确!“a”字符和“ab”字符的出现次数就是“4”和“2”。
下面我们来了解一下这其中的关键函数substr_count()。
substr_count()函数可以计算子串(由一个或多个字符组成)在字符串中出现的次数(区分大小写)。
substr_count($string,$substring,$start,$length)
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $str = 'aaabbccqqwweeab'; echo "字符串为:".$str.'<br/><br/>'; echo "字符串中出现了 ".substr_count($str,'a',0,5)." 次 a字符!"; echo "<br/>字符串中出现了 ".substr_count($str,'a',2,5)." 次 a字符!"; echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab',0,10)." 次 ab子串!"; echo "<br/>字符串中出现了 ".substr_count($str,'ab',3)." 次 ab子串!"; ?>
substr_count($str,'a')
" et "substr_count($str,'ab') code >" pour compter le nombre d'occurrences des caractères "a" et "ab" dans la chaîne $str. Que pensez-vous que cela va produire ? "4" et "2" doivent-ils être émis ? Alors n'est-ce pas ? Jetons un coup d'œil au résultat : <p></p>
<img src="https://img.php.cn/upload/image/772/873/472/1628582516539367.png" title="1628582516539367.png" alt="2 . png"><p></p>C'est exact ! Le nombre d'occurrences du caractère « a » et du caractère « ab » est « 4 » et « 2 ». <p><img src="https://img.php.cn/upload/image/917/253/460/162858295983491Lapprentissage%20des%20cha%C3%AEnes%20PHP%20compte%20le%20nombre%20doccurrences%20de%20caract%C3%A8res" title="162858295983491Lapprentissage des chaînes PHP compte le nombre doccurrences de caractères" alt="Lapprentissage des chaînes PHP compte le nombre doccurrences de caractères">Jetons un coup d'œil à la fonction clé substr_count(). </p>
<p>La fonction substr_count() peut compter le nombre de fois qu'une sous-chaîne (constituée d'un ou plusieurs caractères) apparaît dans une chaîne (sensible à la casse). <a href="//m.sbmmt.com/course/list/29.html" target="_blank"></a><code>substr_count($string,$substring,$start,$length)
La fonction accepte 2 paramètres obligatoires $string et $substring, et 2 paramètres omis $start et $length.
Nous connaissons déjà les deux premiers paramètres requis grâce à l'exemple de code ci-dessus. Jetons un coup d'œil aux deux paramètres omis $start et $length.
🎜$start : Utilisé pour préciser où commencer la recherche des sous-chaînes dans la chaîne 🎜🎜🎜🎜$length : Utilisé pour préciser la longueur de la recherche 🎜🎜🎜🎜 En fonction des valeurs fixées par les paramètres $start et $length, substr_count La valeur renvoyée par la fonction () est également différente. 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜D'accord, c'est tout si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je vous recommande de lire un cours classique "🎜PHP String Processing (Jade Girl Heart Sutra Edition)🎜", c'est gratuit~ Venez apprendre ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!