PHP怎么統(tǒng)計字符的出現次數

這篇文章主要講解了“PHP怎么統(tǒng)計字符的出現次數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP怎么統(tǒng)計字符的出現次數”吧!

專注于為中小企業(yè)提供網站制作、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)黃陂免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。

給出一個字符串“aaabbccqqwweeab”,如何統(tǒng)計出每個字符的出現次數?可以借助循環(huán)

<?php
header("Content-Type: text/html;charset=utf-8");    //設置字符編碼
//統(tǒng)計字符串中出現的字符,出現次數
$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;//如果已經遇到,不用再循環(huán)記錄數組了,繼續(xù)下一個字符串比較
  }
 }
 if(!$found){
  $strRecord[] = array('key'=>$str[$i],'count'=>1);//記錄沒有遇到過的字符串
 }
}
echo '<pre>';
print_r($strRecord);
?>

分析:

  • 循環(huán)一次$str字符串,將出現過的字符記錄在$strRecord數組(只記錄一次,如果重復了,就忽略)。

  • 遍歷$strRecord數組,將字符串中的每個字符($str[$i])和數組的值($strRecord[]['key'])進行比較;如果記錄里的某個值和這個字符一樣,就記錄次數($strRecord[]['count'])+1。

我們來看看輸出結果:

PHP怎么統(tǒng)計字符的出現次數

OK,統(tǒng)計出來了!

但有時我們不需要統(tǒng)計全部字符,只需要計算指定的一個字符/子串的出現次數,這樣怎么操作?

這也簡單,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')”語句來統(tǒng)計字符串$str中“a”字符和“ab”字符的出現次數。大家覺得這個會輸出什么?是不是應該輸出“4”和“2”呀。那么對不對?我們來看一下輸出結果:

PHP怎么統(tǒng)計字符的出現次數

正確!“a”字符和“ab”字符的出現次數就是“4”和“2”。

下面我們來了解一下這其中的關鍵函數substr_count()。

substr_count()函數可以計算子串(由一個或多個字符組成)在字符串中出現的次數(區(qū)分大小寫)。

substr_count($string,$substring,$start,$length)函數接受2個必需參數$string和$substring、2個可省略參數$start和$length。

前2個必需參數我們通過上面的代碼示例已經對大家有所了解,下面我們來看看2個可省略參數$start和$length。

  • $start:用于指定在字符串中何處開始搜索子串

  • $length:用于指定搜索的長度

根據參數$start和$length設置的值不同,substr_count()函數返回的值也不同。

<?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怎么統(tǒng)計字符的出現次數

感謝各位的閱讀,以上就是“PHP怎么統(tǒng)計字符的出現次數”的內容了,經過本文的學習后,相信大家對PHP怎么統(tǒng)計字符的出現次數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:PHP怎么統(tǒng)計字符的出現次數
文章起源:http://bm7419.com/article32/pscepc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供全網營銷推廣、建站公司、定制網站、用戶體驗、網站改版、搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)