美文网首页简友广场读书
用户 一对多分配 PHP

用户 一对多分配 PHP

作者: 恋卿三世i | 来源:发表于2022-10-19 14:02 被阅读0次

我这边有一个业务需求,就是有两种用户类别(第二种类别用户数远超第一类用户),然后需要根据他们所选的偏好和地区来进行匹配。
比如说A类用户:他们可以多选偏好,并且可以选择多个城市,例如下方示例的 userA1, userA2,
A类用户示例如下所示:
{
label:'userA1',
type:1,
like:['1', '4', '11'],
like2:['3','14','15'],
city:['1','2']
},
{
label:'userA2',
type:1,
like:['1', '11'],
like2:['3','13'],
city:['2', '3']
},
...

B类用户:他们只能选择单选偏好和城市,比如 userB1, userB2,
B类用户示例如下所示:
{
label:'userB1',
type:2,
like:"1",
like2:"3"
city:"1"
},
{
label:'userB2',
type:2,
like:"4",
like2:"7"
city:"6"
},
...

分配的时候就需要根据他们所选择的偏好来进行匹配,匹配规则:
1.双方用户必须匹配 city 字段;
2.优先双方匹配 like 字段,如果B类用户的 like 字段没有匹配到A类用户,则使用A类用户的 like2 字段来匹配,如果还没有就轮空;
3.每一个A类用户最多不能匹配超过5个B类用户,如果B类用户实在多,所有匹配的A类用户都匹配了5个时,继续1、2步骤进行分配直到所有B类用户分配完成。

我小伙伴的一个需求,稍微做了一下模糊处理,因为我主力语言是 Js, PHP 并不了解多少,所以提供了几个解决方案都被他否决了。
所以厚着脸皮来社区问问是不是有大佬能给个思路....
他觉得困难的地方就是A类用户三个属性都是多选的。
我说让他把A类用户按照 like 分组,添加 count 属性并以此排序,然后用B类用户一个一个去分配,如果分配成功就把对应的A类用户 count++,跑完全部 B类用户 不就好了。
但是他说不行,最后第三条规则他处理不来,最多做到不限数量分配,但是我没有 Get 到为啥不行的点,可能 Js 的编程思路和 PHP 的有点差异吧...
也许是可能会出现某一个A用户选择了全部偏好然后出现一柱擎天的情况???

相关文章

  • 用户 一对多分配 PHP

    我这边有一个业务需求,就是有两种用户类别(第二种类别用户数远超第一类用户),然后需要根据他们所选的偏好和地区来进行...

  • 【再读lara】Eloquent: Relationship 关

    一对一 用户和文章 一对多 文章和评论 多对多 用户和角色一个用户可以拥有多个角色,一个角色下面可以有多个用户us...

  • laravel 模型关联

    laravel 模型关联 1、 一对一 2、 定义反向关联(可用户一对多的反向关联) 3、 一对多 4、 多对多 ...

  • Day05

    1、表关系 一对一:如用户和身份证 一对多(多对一): 一个班级---->多个学生而言是一对多 ...

  • 基于Shiro的administrator权限管理系统的初步分析

    模型 基础模型共有三个概念: 用户 角色 菜单 用户与角色是一对多的关系,角色与菜单是一对多的关系。 角色 角色是...

  • Flask-数据库常见模版代码

    一对多 实例场景用户与其发布的帖子(用户表和帖子表)角色与所属该角色的用户(角色表与多用户表) 示例代码 多对多 ...

  • php内存分配

  • Mysql创建用户分配权限

    mysql创建用户 mysql为用户分配权限 分配完权限刷新权限

  • 八月十六号

    PHP中的“if…else if…else…”语法,如下:

  • Hibernater学习笔记(五)

    上次学习一对多查询,今天学习多对多查询场景:用户和角色的关系,一个用户可以是多个角色,一个角色可以有多个用户 po...

网友评论

    本文标题:用户 一对多分配 PHP

    本文链接:https://www.haomeiwen.com/subject/afvezrtx.html