本文實例講述了PHP實現(xiàn)統(tǒng)計所有字符在字符串中出現(xiàn)次數(shù)的方法。分享給大家供大家參考,具體如下:
先來看看效果:
算法:
循環(huán)一次字符串(本例的$str
),把出現(xiàn)過的字符串記錄在一個數(shù)組(如本例的$strRecord
)內(nèi),如果已經(jīng)此記錄函數(shù)已經(jīng)有,則不記錄;
在每個字符串時,拿來與記錄數(shù)組的值進(jìn)行比較(本例的$strRecord[]['key']
),如果記錄里的某個值和這個字符串一樣,就記錄次數(shù)+1(本例的$strRecord[]['count']
);
當(dāng)然,設(shè)置一個變量,默認(rèn)為false(如本例的$found
),記錄每次比較完,如果記錄數(shù)組已經(jīng)有這個值,就設(shè)置為true,通過這個標(biāo)記,把沒有遇到過的數(shù)組記錄到數(shù)組里
實現(xiàn)代碼:
?php //統(tǒng)計字符串中出現(xiàn)的字符,出現(xiàn)次數(shù) echo 'pre>'; $str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示例 echo $str.'br/>'; $strRecord=array();//把出現(xiàn)過的字符記錄在此數(shù)組中,如果記錄有,則不記錄, for($i=0;$istrlen($str);$i++){ $found = 0;//默認(rèn)設(shè)置為沒有遇到過 foreach((array)$strRecord as $k=>$v){ if($str[$i] == $v['key']){ $strRecord[$k]['count'] += 1;//已經(jīng)遇到,count + 1; $found = 1;//設(shè)置已經(jīng)遇到過的,標(biāo)記 continue;//如果已經(jīng)遇到,不用再循環(huán)記錄數(shù)組了,繼續(xù)下一個字符串比較 } } if(!$found){ $strRecord[] = array('key'=>$str[$i],'count'=>1);//記錄沒有遇到過的字符串 } } print_r($strRecord); ?>
PS:這里再為大家推薦2款非常方便的統(tǒng)計工具供大家參考使用:
在線字?jǐn)?shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php程序設(shè)計算法總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
標(biāo)簽:欽州 南昌 駐馬店 延邊 阜陽 黑河 中衛(wèi) 臨夏
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實現(xiàn)統(tǒng)計所有字符在字符串中出現(xiàn)次數(shù)的方法》,本文關(guān)鍵詞 PHP,實現(xiàn),統(tǒng)計,所有,字符,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。