$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根据字段相识度进行排序查询的更多相关文章

  1. rownum按某字段排序查询

    特点:rownum伪列,查询结果按顺序从1递增排列 用途:按某字段排序查询第几名到第几名的数据 但加上按字段排序条件后,rownum并不会从1递增 需把按字段排序查询的数据作为一张表,再次查询,row ...

  2. 10. MySQL基础-02条件查询、排序查询

    2. 条件查询 语法 ​ select 查询列表 from 表名 where 筛选条件: 分类 按条件表达式筛选 简单的条件运算符:> < = != <> >= ⇐ 按逻 ...

  3. MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概

    MySQL的表和字段信息的变更 ALTER TABLE table-name DROP column-name; #删除某个字段 ALTER TABLE table-name ADD column-n ...

  4. 03_MySQL DQL_排序查询

    #进阶3:排序查询/*语法: select 查询列表 from 表名 [where 筛选条件] order by 排序列表 [asc|desc] 特点: 1.asc升序,desc降序, 如果都不写,默 ...

  5. MySql——创建数据表,查询数据,排序查询数据

    参考资料:<Mysql必知必会> 创建数据表 在学习前首先创建数据表和插入数据.如何安装mysql可以看看上个博客https://www.cnblogs.com/lbhym/p/11675 ...

  6. MySQL 进阶3 排序查询

    #进阶3 排序查询 格式: select 查询列名 from 表 [where 筛选条件] order by 排序列名 [asc / desc] 排序查询/嵌套排序查询/函数查询/[按别名进行 排序] ...

  7. MySQL 按照数据库表字段动态排序 查询列表信息

    MySQL 按照数据库表字段动态排序 查询列表信息 背景描述 项目中数据列表分页展示的时候,前端使用的Table组件,每列自带对当前页的数据进行升序或者降序的排序. 但是客户期望:随机点击某一列的时候 ...

  8. SEC7 - MySQL 查询语句--------------进阶3:排序查询

    # 进阶3:排序查询 /* 引入: select * from employees; 语法: select 查询列表 from 表 [where 筛选条件] order by 排序的列表 asc/de ...

  9. 数据库MySQL--条件查询/排序查询

    一.条件查询 条件查询:满足条件的字段被筛选出来 语法:select 查询列表字段 from 表名 where 筛选条件: 条件查询的条件分类: 1.按条件表达式筛选:条件运算符:>, < ...

随机推荐

  1. laravel 队列服务使用总结

    laravel 队列服务使用总结 使用步骤 配置队列驱动 //env文件,有的版本是QUEUE_DRIVER QUEUE_CONNECTION=database 迁移队列需要的数据表,在数据库中生成j ...

  2. Windows环境安装与配置RocketMQ

    1.下载RocketMQ http://rocketmq.apache.org/release_notes/release-notes-4.3.0/ 2.解压下载的安装包rocketmq-all-4. ...

  3. 快速理解DevOps概念和意义-兼谈SRE

    最近几年,由于负责的范围的变化.工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理.中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理.文章主要是总结一下我对DevOp ...

  4. appcompat_v7 res values-v21 error

    [2014-11-03 11:30:25 - AndroidApp] appcompat_v7/res/values-v21/styles_base.xml:75: error: Error retr ...

  5. Java使用反射实现根据字符串类名及参数创建对象

    要根据字符串创建对象,可以使用 Class.forName(String) 方法: 而要新建一个可以指定初始值参数的对象,就必须得使用 getConstructor(Class<T>... ...

  6. wordpress 如何防止盗链

    盗链是指其它站点使用了你自己网站的图片音乐等资源,然后链接又没有更换,直接显示的就是你站点的图片,这在转载文章时最常见,比如转载时将 整篇文章都转载过去,包括文章里面的图片,有些人就懒得把图片再重新上 ...

  7. Kafka常用topic操作命令汇总

    offset topic consumer-group consumer producer producer-golang topic 工具 https://cwiki.apache.org/conf ...

  8. CCF_201509-1_数列分段

    水. #include<iostream> #include<cstdio> using namespace std; int main() { ]; cin >> ...

  9. 使用MS Devops 来部署CRM Solution

    在D365 CE开发当中,有一个非常痛苦的问题就是开发,测试环境中的export import solution 部署问题. Devops中能很好的解决这个问题. 工作原理: 在Azure Devop ...

  10. D语言-随机数游戏

    由于不会D语言的随机数,干脆core.stdc.stdlib调用stdlib.h 这里mark一下,类型转换是cast(D语言类型) NULL不能用,要用null import std.stdio; ...