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


 1 <?php  
 2 //統計字符串中出現的字符,出現次數  
 3 echo '<pre>';  
 4 $str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示例  
 5 echo $str.'<br/>';  
 6 $strRecord=array();//把出現過的字符記錄在此數組中,如果記錄有,則不記錄,  
 7   
 8 for($i=0;$i<strlen($str);$i++){  
 9     $found = 0;//默認設置為沒有遇到過  
10   
11     foreach((array)$strRecord as $k=>$v){  
12         if($str[$i] == $v['key']){  
13             $strRecord[$k]['count'] += 1;//已經遇到,count + 1;  
14             $found = 1;//設置已經遇到過的,標記  
15             continue;//如果已經遇到,不用再循環記錄數組了,繼續下一個字符串比較  
16         }  
17     }  
18   
19     if(!$found){  
20         $strRecord[] = array('key'=>$str[$i],'count'=>1);//記錄沒有遇到過的字符串  
21     }  
22 }  
23 print_r($strRecord);  

 



 

效果如圖

 

算法

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

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

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

代碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM