1. 程式人生 > >檢測出現字串出現次數最多的字元

檢測出現字串出現次數最多的字元

講真,我以為這個可以用來做搜尋引擎的前置部分,結果忘了表的存在。難受~~~
/**
 * @param $sth 需要檢測的變數值
 * @param int $sublen 被檢測片語的長度
 * @return string
 */

function easyhandle($sth,$sublen=1){   //簡單處理變數
    if(gettype($sth)=='resource'||gettype($sth)=='object'){
        return 'The data type is required to be an array or a string!';
    }

    if(is_array($sth)){
        foreach ($sth as $k =>$v){
            $arr[]=$v;
        }
        returnstr($arr);

    }else if(is_string($sth)){
        for($i=0;$i<strlen($sth);$i++)
        {
            $arr[]=mb_substr($sth,$i,$sublen);  //切割存入陣列
        }
         $uniqueArr = array_unique($arr);
        foreach ($uniqueArr as $k=>$v)
        {
            $temp = mb_substr_count($sth,$v);  //字串對應次數
            $strexptime[$v] = $temp;
        }

      returnstr($strexptime);
    }
}


function returnstr($arr)
{
    $maxstr='';
    foreach ($arr as $k => $v)
    {
        if($v==max($arr))
        {
            $maxstr .= $k.',';
        }
    }

    $checkeqv = count(explode(',',$maxstr))-1;

    if($checkeqv>1)
    {
        $maxstr = implode(',',explode(',',$maxstr));
    }
    $str = '出現次數最多的是'.$maxstr.'次數為'.max($arr);

    var_dump($str);
}

$sth='lalalademaxiya';

easyhandle($sth,1);

熱搜表hot_search,就需要加一個recordtime(int)的欄位就好了,頂多做下分詞。

喝口水冷靜一下,還是不服。

唔,然後預設一個時間段time,當前時間段中輸入量的佔比,然後佔比越大越靠前或者字型越大,我去,感覺像是某牙的彈幕顯示了。