使用php函数在字符串中最多出现一个字母

使用php函数在字符串中最多出现一个字母,php,string,Php,String,我有stringAABBBCCCDABBAACBB,在这里我需要找到最多出现的字符,我怎么能找到这个 在上面的字符串中,它应该返回7 ad B来7次,即最大值 $str = "AABBBCCCABB"; $strArray = count_chars($str,1); foreach ($strArray as $key=>$value) { echo "The character <b>'".chr($key)."'</b> was found $val

我有string
AABBBCCCDABBAACBB
,在这里我需要找到最多出现的字符,我怎么能找到这个

在上面的字符串中,它应该返回7 ad B来7次,即最大值

$str = "AABBBCCCABB";
$strArray = count_chars($str,1);

foreach ($strArray as $key=>$value)
{
    echo "The character <b>'".chr($key)."'</b> was found $value time(s)<br>";
    //$highest=chr($key);
    if(isset($highest) && $highest>chr($key))
    {
        $highest=chr($key);
    }
}
echo "<br/><br/>Highest value is ::".$highest;
$str=“AABBBCCCABB”;
$strArray=计数字符($str,1);
foreach($key=>$value)
{
回显“字符'”.chr($key)。“'was find$value time)
”; //$highest=chr($key); if(isset($highest)&&$highest>chr($key)) { $highest=chr($key); } } echo“

最高值为::”$Highest;
上面的代码我试过了

我试过了,但功能并不完美,我应该使用
php的哪个函数?

$string=“AABBBCCCABB”;
$string="AABBBCCCABB";
foreach (str_split($string) as $s){
    if (isset($counts[$s])) continue;
    $counts[$s]=substr_count($string, $s);
    echo "The character <b>'" . $s . "'</b> was found ".$counts[$s]." time(s)<br>";
}
$maxs=array_keys($counts, max($counts));
echo "Highest value is ::'".$maxs[0];
foreach(str_分割($string)为$s){ 如果(isset($counts[$s])继续; $counts[$s]=substr_count($string,$s); 回显“字符”“。$s”“”。找到“$counts[$s]”。时间
”; } $maxs=数组_键($counts,max($counts)); echo“最大值为::”$maxs[0];
以您的方式为您的代码提供解决方案:

$str = "AABBBCCCABB";
$strArray = count_chars($str,1);
$highest = $str[0];
$times = 0;

foreach ($strArray as $key=>$value){
    echo "The character <b>'".chr($key)."'</b> was found $value time(s)<br>";
    //$highest=chr($key);
    if($times < $value)
    {
        $times = $value;
        $highest=chr($key);
    }

}

  echo "<br/><br/>Highest value is ::".$highest;
$str=“AABBBCCCABB”;
$strArray=计数字符($str,1);
$highest=$str[0];
$times=0;
foreach($key=>$value){
回显“字符'”.chr($key)。“'was find$value time)
”; //$highest=chr($key); 如果($times<$value) { $times=$value; $highest=chr($key); } } echo“

最高值为::”$Highest;

但是Alma Do的答案最好使用。

您也可以使用
max()
函数:

$str = "AABBBCCCABB";
$strArray = count_chars($str,1);
$highest = max($strArray);
foreach ($strArray as $key=>$value) {
  echo "The character <b>'" . chr($key) . "'</b> was found $value time(s)<br>";
}
echo "<br/><br/>Highest value is ::" . $highest;
$str=“AABBBCCCABB”;
$strArray=计数字符($str,1);
$highest=最大值($strArray);
foreach($key=>$value){
回显“字符'”.chr($key)。“'was find$value time)
”; } echo“

最大值为::”$最高;
这不需要循环。用于查找重复次数最多的值的键,并在其上使用:

输出:

B

试试这个解决方案,希望它能帮助你解决问题

$string  =  "AABBBCCCABB";
$letters = array_count_values(str_split($string));
$val = array_search(max($letters), $letters);
echo $val;
试试这个

echo maxCountChar("AABBBCCCDABBAACBB");

function maxCountChar($string){
    foreach (str_split($string) as $s){
        $counts[$s]=substr_count($string, $s);
    }
    $maxs=array_keys($counts, max($counts));
    $num = substr_count($string, $maxs[0]);
    return "The character <b>$maxs[0]</b> was found <b>$num</b> times";
}

“功能不完美”是对问题的一个很糟糕的描述。请尝试提供至少一点更多的信息,说明代码是如何不符合您的要求的。(也就是说,我在你的代码中看到了一些明显的错误,所以在这种特殊情况下,仅仅“不返回正确的值”就足够了。)请不要对帮助你的人大喊大叫。不大喊大叫只是错误的。。。。我在试他的密码…@popthnxbuddy@NigelAngel我认为如果你试着通过给出答案而不是制造误解来提供帮助会更好!!。。。作为回答,我又错打了一个标记,所以这个标记是正确的gone@simmisimmi:很高兴我能帮忙。仅供参考:您不能有多个答案。:)
echo maxCountChar("AABBBCCCDABBAACBB");

function maxCountChar($string){
    foreach (str_split($string) as $s){
        $counts[$s]=substr_count($string, $s);
    }
    $maxs=array_keys($counts, max($counts));
    $num = substr_count($string, $maxs[0]);
    return "The character <b>$maxs[0]</b> was found <b>$num</b> times";
}
The character B was found 7 times