PHP實(shí)現(xiàn)統(tǒng)計(jì)所有字符在字符串中出現(xiàn)次數(shù)的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)統(tǒng)計(jì)所有字符在字符串中出現(xiàn)次數(shù)的方法。分享給大家供大家參考,具體如下:
先來(lái)看看效果:

算法:
循環(huán)一次字符串(本例的$str),把出現(xiàn)過(guò)的字符串記錄在一個(gè)數(shù)組(如本例的$strRecord)內(nèi),如果已經(jīng)此記錄函數(shù)已經(jīng)有,則不記錄;
在每個(gè)字符串時(shí),拿來(lái)與記錄數(shù)組的值進(jìn)行比較(本例的$strRecord[]['key']),如果記錄里的某個(gè)值和這個(gè)字符串一樣,就記錄次數(shù)+1(本例的$strRecord[]['count']);
當(dāng)然,設(shè)置一個(gè)變量,默認(rèn)為false(如本例的$found),記錄每次比較完,如果記錄數(shù)組已經(jīng)有這個(gè)值,就設(shè)置為true,通過(guò)這個(gè)標(biāo)記,把沒(méi)有遇到過(guò)的數(shù)組記錄到數(shù)組里
實(shí)現(xiàn)代碼:
<?php
//統(tǒng)計(jì)字符串中出現(xiàn)的字符,出現(xiàn)次數(shù)
echo '<pre>';
$str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示例
echo $str.'<br/>';
$strRecord=array();//把出現(xiàn)過(guò)的字符記錄在此數(shù)組中,如果記錄有,則不記錄,
for($i=0;$i<strlen($str);$i++){
$found = 0;//默認(rèn)設(shè)置為沒(méi)有遇到過(guò)
foreach((array)$strRecord as $k=>$v){
if($str[$i] == $v['key']){
$strRecord[$k]['count'] += 1;//已經(jīng)遇到,count + 1;
$found = 1;//設(shè)置已經(jīng)遇到過(guò)的,標(biāo)記
continue;//如果已經(jīng)遇到,不用再循環(huán)記錄數(shù)組了,繼續(xù)下一個(gè)字符串比較
}
}
if(!$found){
$strRecord[] = array('key'=>$str[$i],'count'=>1);//記錄沒(méi)有遇到過(guò)的字符串
}
}
print_r($strRecord);
?>
PS:這里再為大家推薦2款非常方便的統(tǒng)計(jì)工具供大家參考使用:
在線(xiàn)字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji
在線(xiàn)字符統(tǒng)計(jì)與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php程序設(shè)計(jì)算法總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php查找字符串出現(xiàn)次數(shù)的方法
- php計(jì)算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)
- PHP獲取數(shù)組長(zhǎng)度或某個(gè)值出現(xiàn)次數(shù)的方法
- php獲取字符串中各個(gè)字符出現(xiàn)次數(shù)的方法
- PHP中substr_count()函數(shù)獲取子字符串出現(xiàn)次數(shù)的方法
- PHP實(shí)現(xiàn)找出數(shù)組中出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的數(shù)字算法示例
- PHP統(tǒng)計(jì)二維數(shù)組元素個(gè)數(shù)的方法
- php統(tǒng)計(jì)數(shù)組元素個(gè)數(shù)的方法
- PHP統(tǒng)計(jì)數(shù)值數(shù)組中出現(xiàn)頻率最多的10個(gè)數(shù)字的方法
- PHP實(shí)現(xiàn)統(tǒng)計(jì)一個(gè)數(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類(lèi)自動(dòng)加載失敗的處理方案及實(shí)例代碼
在本篇文章里小編給大家整理了一篇關(guān)于php類(lèi)自動(dòng)加載失敗的處理方案及實(shí)例代碼,有興趣的朋友們可以學(xué)習(xí)參考下。2021-09-09
PHP Header用于頁(yè)面跳轉(zhuǎn)要注意的幾個(gè)問(wèn)題總結(jié)
在PHP中用header("location:test.php")進(jìn)行跳轉(zhuǎn)要注意以下幾點(diǎn),有助于解決一些新手經(jīng)常遇到的問(wèn)題2008-10-10
php mailer類(lèi)調(diào)用遠(yuǎn)程SMTP服務(wù)器發(fā)送郵件實(shí)現(xiàn)方法
這篇文章主要介紹了php mailer類(lèi)調(diào)用遠(yuǎn)程SMTP服務(wù)器發(fā)送郵件實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php mailer類(lèi)的調(diào)用及郵件發(fā)送相關(guān)技巧,需要的朋友可以參考下2016-03-03
php用戶(hù)注冊(cè)時(shí)常用的檢驗(yàn)函數(shù)實(shí)例總結(jié)
這篇文章主要介紹了php用戶(hù)注冊(cè)時(shí)常用的檢驗(yàn)函數(shù),以類(lèi)的形式實(shí)例總結(jié)了用戶(hù)名驗(yàn)證、郵箱驗(yàn)證、QQ驗(yàn)證等常用的驗(yàn)證技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
require(),include(),require_once()和include_once()的異同
require(),include(),require_once()和include_once()的異同...2007-01-01
生成ubuntu自動(dòng)切換壁紙xml文件的php代碼
運(yùn)行代碼后在圖片目錄下會(huì)生成yuxing.xml,方便ubuntu自動(dòng)切換壁紙.2010-07-07
php實(shí)現(xiàn)的支持?jǐn)帱c(diǎn)續(xù)傳的文件下載類(lèi)
這篇文章主要介紹了php實(shí)現(xiàn)的支持?jǐn)帱c(diǎn)續(xù)傳的文件下載類(lèi)及其用法實(shí)例,詳細(xì)講述了PHP實(shí)現(xiàn)斷點(diǎn)續(xù)傳下載的原理及代碼實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09
無(wú)法載入 mcrypt 擴(kuò)展,請(qǐng)檢查 PHP 配置終極解決方案
今天運(yùn)行phpmyadmin的時(shí)候,提示無(wú)法載入 mcrypt 擴(kuò)展,經(jīng)排查原來(lái)是php配置問(wèn)題。2011-07-07

