当前位置: 首页 > 后端技术 > PHP

根据用户购买的产品推荐

时间:2023-03-29 23:41:07 PHP

要实现的功能是根据用户购买的商品(猜你喜欢)进行推荐。数据库结构:标签表label、商品标签关联表goods_label、商品表goods、商品sku表goods_sku、订单表order、订单商品快照表order_goods实现原理:根据购买商品的标签,为用户推荐商品。上面的代码:$memberid=$member->checktoken($param['token']);$orderlist=$order->getorder(array('member_id'=>$memberid));$list=array();foreach($orderlistas$value1){$ordergoods=$order->getordergoods($value1['ordernumber']);foreach($ordergoodsas$value){$labellist=array();$label_id=$that->labegoodsinfo(array('goods_id'=>$value['goods_id']));$labellist=explode(',',$label_id);$list=array_merge($list,$labellist);$list=array_unique($list);//$list为用户购买的商品标签//格式:$list=array(0=>1,1=>3,2=>5,3=>4);}}$label_goods=$that->getgoodslabel();foreach($label_goodsas$k=>$value){$goods_labelid=explode(',',$value['label_id']);$label_goods[$k]['count']=count(array_intersect($goods_label盖子,$列表));如果($label_goods[$k]['count']==0){unset($label_goods[$k]);}}//$label_goods是匹配$list标签的商品,count是匹配的标签数量//format:$label_goods=array(0=>array('label_id'=>1,3,6,'goodsid'=>1,'count'=>2),//1=>array('label_id'=>1,3,5,'goodsid'=>2,'count'=>3)//)$sort=array('direction'=>'SORT_DESC',//排序顺序标志SORT_DESC降序;SORT_ASC升序'field'=>'count',//排序字段);$arrSort=数组();foreach($label_goodsAS$uniqid=>$row){foreach($rowAS$key=>$value){$arrSort[$key][$uniqid]=$value;}}if($sort['direction']){array_multisort($arrSort[$sort['field']],constant($sort['direction']),$label_goods);}//$label_goods重新排序,排序根据匹配标签的个数从多到少//格式:$label_goods=array(0=>array('label_id'=>1,3,5,'goodsid'=>2,'count'=>3),//1=>array('label_id'=>1,3,6,'goodsid'=>1,'count'=>2)//)最后只需要根据goodsid查询相关商品的信息即可。没有使用权重等相关算法。欢迎大家多提意见,让我有更好的进步!爱你~