有没有反复使用PHP重复连续重复段的最大部分?

I want to put the input like "RKKRRRRK" and try to get the output like largest continuous segment.. Suppose my input may be "RKKKR" then my program will display 'KKK' is the largest continuous segment.. and then it also display the count is 3..

I've already write the code for counting 'R' values.. now i want this program also... need help anyone help me.. thanks in advance.

Here the code:-

<?php

    function numberOfR($string1) 
    {

        for($i=0;$i <strlen($string1);$i++)
        {
            if($string1[$i]!='K') 
            {
                $count++;
            }
        }
        return $count;
    }
    $return_value= numberOfR("RKKRK");
    echo "R's count is:";
    echo $return_value;
?>
    <?php
    function getLongetSegment($string) {
        $currentSegmentChar='';
        $currentSegment="";
        $biggestSegment="";
        $current_length=0;
        $biggest_length=0;
        for($i=0;$i<strlen($string);$i++) {
            $char = $string[$i];
                if($char != $currentSegmentChar || $currentSegmentChar == '') {
                    if($current_length >= $biggest_length) {
                        $biggestSegment = $currentSegment;
                        $biggest_length = $current_length;
                    }
                    $currentSegmentChar = $char;
                    $currentSegment = $char;
                    $current_length = 1;
                }
                elseif($currentSegmentChar != '') {
                    $currentSegment .= $char;
                    $current_length++;
                }
        }
        if($current_length >= $biggest_length) {
            $biggestSegment = $currentSegment;
        }
        return array("string" => $biggestSegment,"length" => $biggest_length);
    }   
    print_r(getLongetSegment("RKKRGGG"));
?>

Result: GGG

You can use preg_match_all over here as

preg_match_all('/(.)\1+/i','RKKRRRRK',$res);
usort($res[0],function($a,$b){
    return strlen($b) - strlen($a);
});
echo $res[0][0];

Not sure if I understood this quite right. Something like this:

function maxCharSequece($string1) 
{
    $maxSeq = $seq = 0;
    $maxChar = $lastChar = null;

    for( $i = 0; $i < strlen($string1); $i++ )
    {
        $c = $string1[$i];

        if (!$lastChar) $lastChar = $c;

        if ( $lastChar == $c ){
            if ( ++$seq > $maxSeq ) $maxChar = $lastChar;
        }
        else {
            $maxSeq = $seq;
            $seq = 0;
        }
    }

    return $maxChar;
}

You can use preg_replace_callback to receive all continuous segments and select the longest

$sq = '';
preg_replace_callback('/(.)\1+/', 
                      function ($i) use (&$sq) { 
                        if(strlen($i[0]) > strlen($sq)) $sq = $i[0]; 
                      },  $str);    
echo  $sq . " " . strlen($sq);