PHP比較兩個數組的相似度

//author: [email protected]
//description: 比較兩個數組的相似度,選取相似度最長的一組數組
//幫同事寫的函數,使用請尊重作者版權
 
function similar($array){
	foreach ($array as $arr){
		$a[] = implode('',$arr);
	}

	$count = count($a);
	for ($i = 0; $i < $count; $i++){
		if ($i == $count-1){
			$j = 0;
		}else{
			$j = $i+1;
		}
		$j_count = $count-1;
		for (;$j < $j_count; $j++){
			similar_text($a[$i],$a[$j],$percent);
			$res[$i.'_'.$j] = $percent;
		}
	}

	arsort($res);
	$keys = explode('_', key($res));
	$result = max($array[$keys[0]], $array[$keys[1]]);
	return $result;
}
 
示例:
$test = array( 
	array(12,11,35), 
	array(2,10,38), 
	array(2,10), 
	array(3,10,38,3,10,38), 
	array(4,11,35,12), 
	array(3,10), 
	array(4,11,35,12,1),
);
 
$res = similar($test);

//————————————————debug——————————————————————————
echo '<pre>';
print_r ($res);
echo '</pre>';
exit();
//————————————————debug——————————————————————————

發佈了64 篇原創文章 · 獲贊 21 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章