PHP比较两个数组的相似度

该博客介绍了一个PHP函数,用于比较多个数组之间的相似度。通过遍历并使用`similar_text`函数计算相似度,找出最相似的两个数组组合。在示例中,函数应用到了一组测试数组,并输出了结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//author: yangyu@sina.cn
//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——————————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值