啥也不说,直接上~~~~~
//数组随便写,此次按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) "康师傅 红烧牛肉面"
}
}