php相似度排序

6 篇文章 0 订阅

啥也不说,直接上~~~~~

//数组随便写,此次按name相似度排序
$tmpData = [
	[
		'id'=>1,
		'name'=>'诺心 数字蛋糕',
	],
	[
		'id'=>2,
		'name'=>'农夫山泉 茶π饮料',
	],
	[
		'id'=>3,
		'name'=>'诺心 美元蛋糕',
	],
	[
		'id'=>4,
		'name'=>'康师傅 冰红茶',
	],
	[
		'id'=>5,
		'name'=>'诺心 雪域牛乳蛋糕',
	],
	[
		'id'=>6,
		'name'=>'康师傅 红烧牛肉面',
	],
	[
		'id'=>7,
		'name'=>'康师傅 老坛酸菜牛肉面',
	],
	[
		'id'=>8,
		'name'=>'诺心草莓蛋糕',
	],
	[
		'id'=>9,
		'name'=>'诺心提拉米苏乐脆蛋糕',
	],
	[
		'id'=>10,
		'name'=>'诺心草莓蛋糕',
	],
	[
		'id'=>11,
		'name'=>'诺心提拉米苏乐脆蛋糕',
	],
	[
		'id'=>12,
		'name'=>'诺心草莓蛋糕',
	],
];

处理方法:

function similar($array,$name){
    //数组key小于3,直接返回,不符合排序要求(特例,可不写)
	if(count($array)<= 3){
		return $array;
	}
	
    //数组处理
	foreach ($array as $key => $value) {
		similar_text($value['name'], $name,$percent);
		$percent = intval($percent);
		$data[$percent]['id'] = $value['id'];
		$data[$percent]['name'] = $value['name'];
		
	}
    //倒叙
	krsort($data);
	return $data;
}


$res = similar($tmpData,'诺心提拉米');
print_r($res);

OK,看结果,搞定!

array(9) {
  [66]=>
  array(2) {
    ["id"]=>
    int(11)
    ["name"]=>
    string(30) "诺心提拉米苏乐脆蛋糕"
  }
  [58]=>
  array(2) {
    ["id"]=>
    int(1)
    ["name"]=>
    string(19) "诺心 数字蛋糕"
  }
  [54]=>
  array(2) {
    ["id"]=>
    int(12)
    ["name"]=>
    string(18) "诺心草莓蛋糕"
  }
  [47]=>
  array(2) {
    ["id"]=>
    int(3)
    ["name"]=>
    string(19) "诺心 美元蛋糕"
  }
  [40]=>
  array(2) {
    ["id"]=>
    int(5)
    ["name"]=>
    string(25) "诺心 雪域牛乳蛋糕"
  }
  [15]=>
  array(2) {
    ["id"]=>
    int(2)
    ["name"]=>
    string(24) "农夫山泉 茶π饮料"
  }
  [13]=>
  array(2) {
    ["id"]=>
    int(7)
    ["name"]=>
    string(31) "康师傅 老坛酸菜牛肉面"
  }
  [11]=>
  array(2) {
    ["id"]=>
    int(4)
    ["name"]=>
    string(19) "康师傅 冰红茶"
  }
  [10]=>
  array(2) {
    ["id"]=>
    int(6)
    ["name"]=>
    string(25) "康师傅 红烧牛肉面"
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值