<BR><?php <BR>//这个方法纯粹是背函数,不解释; <BR>function countStr($str){ <BR>$str_array=str_split($str); <BR>$str_array=array_count_values($str_array); <BR>arsort($str_array); <BR>return $str_array; <BR>} <BR>//以下是例子; <BR>$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas"; <BR>prin<strong>*本文来源gaodai#ma#com搞@代~码^网+</strong><strong>搞代gaodaima码</strong>t_r(countStr($str)); <BR>?> <BR><? <BR>//这个方法有些数据结构的思想,不过还是很好理解的:) <BR>function countStr2($str){ <BR>$str_array=str_split($str); <BR>$result_array=array(); <BR>foreach($str_array as $value){//判断该字符是否是新出现的种类,是的话就设置为1,不是的话就自加; <BR>if(!$result_array[$value]){ <BR>$result_array[$value]=1; <BR>}else{ <BR>$result_array[$value]++; <BR>} <BR>} <BR>arsort($result_array); <BR>return $result_array; <BR>} <BR>$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas"; <BR>var_dump(countStr2($str)) <BR>?> <BR><?php <BR>//这个方法纯粹是解法一的蹩脚版本,先找出所有字符的总类,然后在一个一个用substr_count函数统计。 <BR>function countStr3($str){ <BR>$str_array=str_split($str); <BR>$unique=array_unique($str_array); <BR>foreach ($unique as $v){ <BR>$result_array[$v]=substr_count($str,$v); <BR>} <BR>arsort($result_array); <BR>return $result_array; <BR>} <BR>$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas"; <BR>var_dump(countStr3($str)); <BR>?> <BR>
*无论是用哪一个方法,都要用到str_split函数,所以说,这个函数很重要哦~