Maison  >  Article  >  développement back-end  >  Méthode PHP pour compter le nombre d'occurrences de tous les caractères d'une chaîne

Méthode PHP pour compter le nombre d'occurrences de tous les caractères d'une chaîne

黄舟
黄舟original
2017-10-18 09:24:191586parcourir

Cet article présente principalement la méthode PHP pour compter le nombre d'occurrences de tous les caractères dans une chaîne, impliquant la traversée de caractères PHP et les compétences opérationnelles liées aux opérations statistiques. Les amis dans le besoin peuvent s'y référer

Cet article. décrit les exemples PHP implémente une méthode pour compter le nombre d'occurrences de tous les caractères d'une chaîne. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Jetons d'abord un coup d'œil à l'effet :

Algorithme :

parcourez la chaîne une fois ($str dans cet exemple) et enregistrez les chaînes qui sont apparues dans un tableau ( comme $strRecord dans cet exemple) ), si cette fonction d'enregistrement existe déjà, elle ne sera pas enregistrée

est utilisée pour chaque chaîne pour comparer avec la valeur du tableau d'enregistrement ($strRecord[]['key'] dans cet exemple) exemple), si la valeur dans l'enregistrement Si une valeur est la même que cette chaîne, enregistrez le nombre de fois + 1 ($strRecord[]['count'] dans cet exemple

Bien sûr, définissez une variable, la valeur par défaut); est faux (comme $found dans cet exemple), enregistrez à chaque fois Après la comparaison, si le tableau d'enregistrement a déjà cette valeur, définissez-le sur vrai et utilisez cette marque pour enregistrer le tableau qui n'a pas été rencontré auparavant dans le tableau

Code d'implémentation :


<?php
//统计字符串中出现的字符,出现次数
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
$str = &#39;aaabbccqqwweedfghhjffffffffggggggggg&#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);//记录没有遇到过的字符串
 }
}
print_r($strRecord);
?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn