首页 > 编程语言 > 详细

php根据字段相识度进行排序查询

时间:2020-02-14 18:38:23      阅读:56      评论:0      收藏:0      [点我收藏+]
$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
                )

        )

)

  技术分享图片

 

php根据字段相识度进行排序查询

原文:https://www.cnblogs.com/wujf-myblog/p/12308465.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!