php 分数大于80 小于90优,导出商品名称相似度大于80%的产品数据

该博客介绍了一个用PHP实现的功能,通过similar_text函数计算商品数据库中相似商品名称的百分比相似度。当相似度超过80%时,将这些相似商品输出,以便运营团队进行排查和梳理。代码示例展示了在Laravel框架下如何查询并处理数据。
摘要由CSDN通过智能技术生成

最近有一个小功能需要开发,目的是随着商品数据库的数据较多,有很多商品名称相似和类似的商品,需要导出来给运营的同事去做排查和梳理。

可以使用php的函数similar_text来做判断。

计算两个字符串之间的百分比相似度:

similar_text("Hello World","Hello Shanghai",$percent);

echo $percent . "%";

//结果: 48%

?>

下面是dodo在laravel框架下实现的代码片段.

$cateId = 88;

$fields = ['id','cate_id','title','is_status'];

$cnt = GoodsList::query()->where(['cate_id'=> $cateId])->select($fields)->orderBy('title')->count();

$list = GoodsList::query()->where(['cate_id'=> $cateId])->select($fields)->orderBy('title')->get()->toArray();

echo '

';

for ($i=0; $i

if(isset($list[$i]) && is_array($list[$i])) { //后面的ID可能会被删除

for ($j=$i; $j

$prev = $list[$i] ['title'];

$next = $list[$j+1] ['title'] ?? '';

similar_text($prev,$next,$percent);

if($percent > 80) {

$dataPrev = $list[$i];

$dataNext = $list[$j+1];

echo $dataPrev['id'].'#####'.$dataPrev['cate_id'].'#####'.$dataPrev['is_status'].'#####'.$dataPrev['title']."\r\n";

echo $dataNext['id'].'#####'.$dataNext['cate_id'].'#####'.$dataNext['is_status'].'#####'.$dataNext['title']."\r\n";

echo "AAAAA\r\n";

unset($list[$j+1]); //删除后面的id

// echo $prev.'===='.$next.'===='.$percent."


";

}

}

}

}

exit();

/*similar_text("Hello World","Hello Peter",$percent);

echo $percent;*/

exit();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值