$data = [
[
‘id‘=>1,
‘title‘=>‘test内容管理系统‘,
],
[
‘id‘=>2,
‘title‘=>‘开源test‘,
],
[
‘id‘=>3,
‘title‘=>‘test轻量级开源内容管理系统‘,
],
[
‘id‘=>4,
‘title‘=>‘内容管理系统‘,
],
[
‘id‘=>5,
‘title‘=>‘免费内容管理系统‘,
],
[
‘id‘=>6,
‘title‘=>‘TEST‘,
],
[
‘id‘=>7,
‘title‘=>‘免费test‘,
],
[
‘id‘=>8,
‘title‘=>‘轻量级开源test‘,
],
[
‘id‘=>9,
‘title‘=>‘tesT建站CMS‘,
],
[
‘id‘=>10,
‘title‘=>‘免费开源test‘,
],
];
上面是原数据。现在接到需求,需要搜索时,匹配的相识度越高,排在越前面。
function similar_arr($array, $keyword, $arr_key = ‘title‘){ //数组key小于3,直接返回,不符合排序要求(特例,可不写) //if(count($array)<= 3){ // return $array; //} //数组相似度处理 foreach ($array as $key => $value) { similar_text($value[$arr_key], $keyword, $percent); $value[‘percent‘] = $percent; $data[] = $value; } //取出数组中percent的一列,返回一维数组 $percent = array_column($data, ‘percent‘); //排序,根据 percent 排序 array_multisort($percent, SORT_DESC, $data); return $data; } $res = similar_arr($data, ‘YzmCMS‘); var_dump($res); 得到想要的结果: Array ( [0] => Array ( [work_id] => 156075645309713479 [work_name] => test [open_id] => DalI5=382UyRck37Nomk [face_pic] => http://zk-new-designer.oss-cn-beijing.aliyuncs.com/a267a2889910dc5713d5b2fe35d68139.png [classify_1] => 1 [classify_2] => 3 [classify_3] => 18 [view_num] => 0 [comment_num] => 0 [like_num] => 0 [is_recommend] => 1 [step] => 0 [status] => 2 [create_time] => 2019-06-17 15:28:34 [is_del] => 0 [recommend_level] => A [recommend_level_val] => 3 [classify_1_name] => 原创 [classify_2_name] => 平面 [classify_3_name] => 品牌 [user_info] => Array ( [open_id] => DalI5=382UyRck37Nomk [username] => KALI落落 [sex] => 1 [vocation] => 学生 [avatar] => http://res.shiquaner.zookingsoft.com/08308f0ea288b09507b06e9d0d69221e.png [country] => 中国 [province] => 广东省 [city] => 惠州市 [personal_sign] => 路漫漫其修远兮 [work_num] => 34 [fans_num] => 16 [follow_num] => 15 [create_time] => 2019-05-08 15:25:11 [recommend_level_val] => 3 [email] => 450049593@qq.com [situation] => 我是工作室/公司负责人 [work_experience] => 10-40小时 [design_experience] => 4年 [preference_classify] => 插图 [style] => 极简,扁平,风景 [field] => 日化用品,医疗,传媒,快消 [is_completed] => 1 [follow_flag] => 0 [report_num] => 0 [popular_num] => 1752 ) ) [1] => Array ( [work_id] => 157691016902 [work_name] => TEST [open_id] => 155425957361222343 [face_pic] => http://res.shiquaner.zookingsoft.com/0fdccdc672c436b38b747f9444d261b7.png [classify_1] => 1 [classify_2] => 3 [classify_3] => 18 [view_num] => 20 [comment_num] => 0 [like_num] => 0 [is_recommend] => 1 [step] => 1 [status] => 2 [create_time] => 2019-12-21 14:36:39 [is_del] => 0 [recommend_level] => S [recommend_level_val] => 4 [classify_1_name] => 原创 [classify_2_name] => 平面 [classify_3_name] => 品牌 [user_info] => Array ( [open_id] => 155425957361222343 [username] => TEST.JD [sex] => 2 [vocation] => 插画师 [avatar] => http://zk-web-object.oss-cn-qingdao.aliyuncs.com/df54eab7631346a7208b54a65fb1918b.png [country] => 中国 [province] => 广东省 [city] => 深圳市 [personal_sign] => [work_num] => 6 [fans_num] => 7 [follow_num] => 11 [create_time] => 2019-04-03 10:46:13 [recommend_level_val] => 4 [email] => [flag] => 2 [is_completed] => 0 [follow_flag] => 0 [report_num] => 0 [popular_num] => 233 ) ) [2] => Array ( [work_id] => 156075769955593473 [work_name] => test [open_id] => DalI5=382UyRck37Nomk [face_pic] => http://zk-new-designer.oss-cn-beijing.aliyuncs.com/0aaf107848e3284497b73c85e28cbb94.png [classify_1] => 1 [classify_2] => 3 [classify_3] => 19 [view_num] => 1 [comment_num] => 0 [like_num] => 0 [is_recommend] => 0 [step] => 0 [status] => 2 [create_time] => 2019-06-17 15:49:09 [is_del] => 0 [recommend_level] => [recommend_level_val] => 0 [classify_1_name] => 原创 [classify_2_name] => 平面 [classify_3_name] => 标志 [user_info] => Array ( [open_id] => DalI5=382UyRck37Nomk [username] => KALI落落 [sex] => 1 [vocation] => 学生 [avatar] => http://res.shiquaner.zookingsoft.com/08308f0ea288b09507b06e9d0d69221e.png [country] => 中国 [province] => 广东省 [city] => 惠州市 [personal_sign] => 路漫漫其修远兮 [work_num] => 34 [fans_num] => 16 [follow_num] => 15 [create_time] => 2019-05-08 15:25:11 [recommend_level_val] => 3 [email] => 450049593@qq.com [situation] => 我是工作室/公司负责人 [work_experience] => 10-40小时 [design_experience] => 4年 [preference_classify] => 插图 [style] => 极简,扁平,风景 [field] => 日化用品,医疗,传媒,快消 [is_completed] => 1 [follow_flag] => 0 [report_num] => 0 [popular_num] => 1752 ) ) )
原文:https://www.cnblogs.com/wujf-myblog/p/12308465.html