php統計所有字符在字符串中出現的次數

效果如圖



算法:

循環一次字符串(本例的$str),把出現過的字符串記錄在一個數組(如本例的$strRecord)內,如果已經此記錄函數已經有,則不記錄;

在每個字符串時,拿來與記錄數組的值進行比較(本例的$strRecord[]['key']),如果記錄裏的某個值和這個字符串一樣,就記錄次數+1(本例的$strRecord[]['count']);

當然,設置一個變量,默認爲false(如本例的$found),記錄每次比較完,如果記錄數組已經有這個值,就設置爲true,通過這個標記,把沒有遇到過的數組記錄到數組裏

代碼:

<?php
//統計字符串中出現的字符,出現次數
echo '<pre>';
$str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示例
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);//記錄沒有遇到過的字符串
	}
}
print_r($strRecord);
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章