PHP實現(xiàn)統(tǒng)計所有字符在字符串中出現(xiàn)次數(shù)的方法
本文實例講述了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;$i<strlen($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è)計有所幫助。
- php查找字符串出現(xiàn)次數(shù)的方法
- php計算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)
- PHP獲取數(shù)組長度或某個值出現(xiàn)次數(shù)的方法
- php獲取字符串中各個字符出現(xiàn)次數(shù)的方法
- PHP中substr_count()函數(shù)獲取子字符串出現(xiàn)次數(shù)的方法
- PHP實現(xiàn)找出數(shù)組中出現(xiàn)次數(shù)超過數(shù)組長度一半的數(shù)字算法示例
- PHP統(tǒng)計二維數(shù)組元素個數(shù)的方法
- php統(tǒng)計數(shù)組元素個數(shù)的方法
- PHP統(tǒng)計數(shù)值數(shù)組中出現(xiàn)頻率最多的10個數(shù)字的方法
- PHP實現(xiàn)統(tǒng)計一個數(shù)字在排序數(shù)組中出現(xiàn)次數(shù)的方法
相關(guān)文章
PHP has encountered an Access Violation at 7C94BD02解決方法
PHP has encountered an Access Violation at 7C94BD02解決方法2009-08-08
PHP Header用于頁面跳轉(zhuǎn)要注意的幾個問題總結(jié)
在PHP中用header("location:test.php")進(jìn)行跳轉(zhuǎn)要注意以下幾點(diǎn),有助于解決一些新手經(jīng)常遇到的問題2008-10-10
php mailer類調(diào)用遠(yuǎn)程SMTP服務(wù)器發(fā)送郵件實現(xiàn)方法
這篇文章主要介紹了php mailer類調(diào)用遠(yuǎn)程SMTP服務(wù)器發(fā)送郵件實現(xiàn)方法,結(jié)合實例形式分析了php mailer類的調(diào)用及郵件發(fā)送相關(guān)技巧,需要的朋友可以參考下2016-03-03
require(),include(),require_once()和include_once()的異同
require(),include(),require_once()和include_once()的異同...2007-01-01
php實現(xiàn)的支持?jǐn)帱c(diǎn)續(xù)傳的文件下載類
這篇文章主要介紹了php實現(xiàn)的支持?jǐn)帱c(diǎn)續(xù)傳的文件下載類及其用法實例,詳細(xì)講述了PHP實現(xiàn)斷點(diǎn)續(xù)傳下載的原理及代碼實現(xiàn)方法,非常具有實用價值,需要的朋友可以參考下2014-09-09
無法載入 mcrypt 擴(kuò)展,請檢查 PHP 配置終極解決方案
今天運(yùn)行phpmyadmin的時候,提示無法載入 mcrypt 擴(kuò)展,經(jīng)排查原來是php配置問題。2011-07-07

