//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——————————————————————————