核心函數(shù):? similar_text()
思路:從文章列表中取出所有文章的標題,構(gòu)成一個文章數(shù)組,將所有文章的標題同當前文章的標題對比,將對比結(jié)果生成一個相似度數(shù)組,按照相似度的數(shù)組的“值"將此數(shù)組降序排序,循環(huán)相似度數(shù)組根據(jù)"鍵"的次序依次取出文章數(shù)組對應(yīng)的"鍵"的值構(gòu)成推薦數(shù)組,可以將總的推薦數(shù)組截取前三,選出相似度排名前三的文章。
不說廢話,直接上代碼。
//相關(guān)文章推薦的方法
? ? public function recommend(){
? ? ? ? header("Content-type: text/html; charset=utf8");
? ? ? ? $title = "php從入門到放棄(基礎(chǔ)篇+實戰(zhàn))";
? ? ? ? //所有文章數(shù)組
? ? ? ? $arr_title = array("php入門與實戰(zhàn)","php基礎(chǔ)入門","php核心編程","php設(shè)計模式","php實戰(zhàn)詳解(基礎(chǔ)篇)");
? ? ? ? //構(gòu)成相似度數(shù)組
? ? ? ? for($i = 0 ; $i < count($arr_title); $i++){
? ? ? ? ? ? $similar_num[$i] = similar_text($title,$arr_title[$i]);
? ? ? ? }
? ? ? ? //按照相似度大小的值升序排列
? ? ? ? arsort($similar_num);
? ? ? ? //取出排序后對應(yīng)鍵的文章標題構(gòu)成推薦文章數(shù)組
? ? ? ? foreach($similar_num as $k => $v){
? ? ? ? ? ? $commned_arr[] = $arr_title[$k].'---相似度為---'.$similar_num[$k];
? ? ? ? }
? ? ? ? //選出相似度為前3的文章
? ? ? ? print_r(array_slice($commned_arr,0,3));
? ? }
最后打印的結(jié)果: