$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. x01.auto_input: 自动输入

    单位经常要把 excel 表的数据录入系统中,能够自动录入该多好. 花了几天时间,学习了一下 pandas 操作 excel 数据,利用 pyautogui 完成了一个自动录入的小测试,希望对有此需求 ...

  2. 透过现象看webpack处理css文件中图片路径转换的具体过程

    webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也 ...

  3. Java 架构知识点整理

    架构学习 1. Java 核心技术 1.1. 基础知识 1.1.1. 进制转换 1.1.2. 异常处理 1.1.3. List 分批代码 1.1.4. 字符串分割 1.1.5. 编码风格 1.2. 并 ...

  4. 3万字总结,Mysql优化之精髓

    本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降. ...

  5. 利用Atomic, ThreadLocal, 模仿AQS, ReentrantLock

    /** * @description 队列同步器,利用原子整形模仿AQS,非公平锁(简单自适应自旋) * @since 2020/2/4 */ public class QueueSynchroniz ...

  6. 使用脚本+kafka自带命令行工具 统计数据写入kafka速率

    思路 每隔一段时间(比如说10秒)统计一次某topic的所有partition的最大offset值之和,这便是该topic的message总数. 然后除以间隔时间就可以粗略但方便得出 某topic的数 ...

  7. nmcli几个常用命令

    1.nmcli connection 用于查看连接 2.nmcli device用于查看当前网络设备 3.nmcli connection modify用于修改当前连接配置 4.nmcli conne ...

  8. 检测并移除WMI持久化后门

      WMI型后门只能由具有管理员权限的用户运行.WMI后门通常使用powershell编写的,可以直接从新的WMI属性中读取和执行后门代码,给代码加密.通过这种方式攻击者会在系统中安装一个持久性的后门 ...

  9. Python socket 基础(Client) - Foundations of Python Socket

    Python socket 基础- Foundations of Python Socket 建立socket - establish socket import socket s = socket. ...

  10. 《C/C++实现Console下的加载进度条模拟[美观版]》

    前言   有时候我们会遇到在CMD或DOS控制台上出现的加载进度条,虽然不是如网页和软件写的美观.但确确实实也有着自己的特色.而且,一个好看的加载进度条也能增加用户使用控制台程序的体验!所以,拿来研究 ...