$str="dfmkm中国dfdf45d11cvv"; 如何找到出现次数最多的字符.  

解决方案 »

  1.   

    这个要写函数了
    步骤:
    str_split()分割函数(涉及英文和中文的区别),循环得出N个个体.放在数组里面。
    比如array[0]------array[n]
    比较数组之间的值。计算有多少数组的值相同;
    建立一个NUM的函数,算算有多少个。最后再比较一下那个最多。应该就可以了吧
      

  2.   

    <?
    $str="dfmkm中国dfdf45d11cvv"; 
    $arr=str_split($str);
    $newarr=array_count_values($arr);
    arsort($newarr);
    echo $newarr[ key($newarr)];
    ?>
      

  3.   

    <?
    $str="dfmkm中国dfdf45d11cvv"; 
    $arr=str_split($str);
    $newarr=array_count_values($arr);
    arsort($newarr);
    echo "出现最多的字符是:<font color=red>".key($newarr)."</font>,出现次数为:".$newarr[key($newarr)];
    ?>中文乱码了
    你自己再处理一下中文的情况吧
      

  4.   

    这个很容易啊,用MB开头的函数:<?php
    $str="dfmkm中国dfdf45d11cvv";
    for($i=0,$d=mb_strlen($str)-1;$i<$d;$i++)
    {
    $r[]=mb_substr($str,$i,1,"GBK");
    }
    $res=array_count_values($r);
    arsort($res);
    echo "以下字符串";
    echo "<p>$str</p>";
    echo "被分割为:<pre>";
    print_r($r);
    echo "</pre>";
    echo "经过分析:";
    echo "<p>".key($res)."</p>";
    echo "是最多次数的";
    ?>经过测试是可以的:
    结果为:
    以下字符串dfmkm中国dfdf45d11cvv
    被分割为:Array
    (
        [0] => d
        [1] => f
        [2] => m
        [3] => k
        [4] => m
        [5] => 中
        [6] => 国
        [7] => d
        [8] => f
        [9] => d
        [10] => f
        [11] => 4
        [12] => 5
        [13] => d
        [14] => 1
        [15] => 1
        [16] => c
        [17] => v
        [18] => v
        [19] => 
    )经过分析:d
    是最多次数的
      

  5.   

    第一次用到mb的函数,增长见识了最后8楼要mb_strlen($str,"GBK") 这样才正确输出中文