前回の記事では、大文字と小文字を区別せずに特定の部分文字列を他の値に置き換える方法を紹介しました。興味がある場合は、リンクをクリックして確認してください→「PHP は関数を巧みに使用して、特定の部分文字列を置き換えます」 * 数値 (大文字と小文字は区別されません) 》を含む部分文字列。今回はPHPを使って文字列内の文字の出現数をカウントする方法を紹介しますので、必要に応じて参考にしてください。
文字列「aaabccqqwweeab」が与えられたと思うのですが、各文字の出現数をカウントするにはどうすればよいでしょうか?ループ
<?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); ?>
を使用して分析できます。
$str 文字列を 1 回ループし、$strRecord 配列に出現した文字を記録します (記録は 1 回のみ、繰り返しても無視してください)。
$strRecord 配列を走査し、文字列 ($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() 関数は、文字列内に部分文字列 (1 つ以上の文字で構成される) が出現する回数をカウントできます (大文字と小文字は区別されます)。
substr_count($string,$substring,$start,$length)
関数は、2 つの必須パラメータ $string と $substring と、2 つの省略パラメータ $start と $length を受け入れます。
最初の 2 つの必須パラメータは、上記のコード例ですでにわかっています。省略された 2 つのパラメータ $start と $length を見てみましょう。
$start: 文字列内の部分文字列の検索を開始する場所を指定するために使用されます
$length: 検索の長さを指定するために使用されます
substr_count() 関数によって返される値は、パラメーター $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子串!"; ?>
出力結果:
わかりました。他に知りたいことがある場合は、これをクリックしてください。 → →php ビデオチュートリアル
最後に、古典的なコース「PHP 文字列処理 (翡翠少女般若心経編)」を読むことをお勧めします。無料です。ぜひ学んでください。 !
以上がPHP文字列学習は文字の出現数をカウントしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。