文档章节

自动排序商品,同分类下间隔显示

m
 mezongzi
发布于 2017/07/06 23:52
字数 392
阅读 7
收藏 0

<?php
    //提交过来的数据
    $_POST = array('title'=>"aaaa","cid"=>12,"sort"=>0);
    
    //分类是12
    $cid = intval($_POST['cid']);

    //1.从数据库中取30条数据,假设允许2个产品可以同时出现
    //其中数组中的key为产品的编号,value为产品分类编号
    $lists = array(
        "1"=>12,
        "2"=>12,
        "3"=>2,
        "4"=>12,
        "5"=>2,
        "11"=>12,
        "12"=>12,
        "18"=>2,
        "22"=>12,
        "44"=>2,
        "54"=>12,
        "76"=>2,
        "77"=>12,
        "99"=>2,
        "100"=>12,
        "111"=>12,
        "120"=>1,
        "121"=>12,
        "131"=>12,
    );
    
    //2.获取位置
    $ids = array_keys($lists);    
    $cids = array_values($lists);
    $lists_length = count($lists);
    
    //3.假设我开始要添加分类为12的产品的时候
        //#1#去判断最后2个产品是否是12,如果都是12要进入排序算法
        if($cid == $cids[$lists_length-1] && $cid == $cids[$lists_length-2]){
            //不管位置在什么地方,就从1开始
            $insert_position=1;
            
            //如果是ture的话就是一直循环下去
            while(true){    
                //如果没有插入位置的话,还是要按顺序添加啊
                if($insert_position >= $lists_length){
                    break;
                }
            
                //想插入的位置
                $insert_position_cid = $cids[$insert_position];
            
                //如果插入的位置的产品分类跟要插入的产品分类一样,继续倒推
                if($cid == $insert_position_cid){
                    $insert_position++;
                    continue;
                }
                
                //当前位置要看看啊,左边产品分类是否是12
                $beforCid = $cids[$insert_position-1]; 
                $nextCid = $cids[$insert_position+1]; 
                
                //如果其中一个有的话,就要继续争推了
                if($cid == $beforCid || $cid == $nextCid){
                    $insert_position++;
                    continue;
                }else{
                    echo $insert_position;
                    echo '<br/>';
                    break;
                }
            }
            //通过位置去获取id数据啦
            $id = $ids[$insert_position-1];
            
            //通过id去找当前的产品,并且设置排序            
            echo $id;
        }else{
            $_POST['sort'] = "是最后一个产品的排序加上"+1000;
        }
    

© 著作权归作者所有

共有 人打赏支持
上一篇: php使用solr笔记
下一篇: php使用solr笔记
m
粉丝 3
博文 2
码字总数 624
作品 0
台州
高级程序员
私信 提问
DBShop 电子商务系统 V0.9.3 RC 版发布

DBShop V0.9.3 RC 2016.11.21 发布了,DBShop 电子商务网店系统,采用业界知名框架 ZendFramework 2 开发而成。 更新内容: 修正: 修正 后台商品分类 编辑勾选标签组保存后,再次编辑不能全...

静静的风
2016/11/21
2.6K
6
金刚多用户商城系统--kgMall

kgMall介绍 kgMall多用户商城,是一个高性能的多用户版商城,采用j2EE技术,支持linux/win/unix等多个平台,速度快,稳定安全。适用于国内购物广场,城市批发市场,行业垂直,跨国贸易等零散商...

聚龙软件
2011/11/12
19.8K
1
2.0模版标签手册beta版

模板标签手册 海盗模板引擎 海盗云商系统(以下简称海盗)的模板引擎是基于原始PHP的「解释型」模板文件引擎,故无论在模板文件里如何编写标签代码,引擎均会转换为原始PHP语句进行解析。 也就...

海绵的歇斯底里
2016/03/15
1
0
电商业务元素

供应商管理 多种类型供应商 供应商管理管理 供应商对接管理 商品管理 商品分类 商品标签 商品排序 商品配送范围 商品销售渠道 商品库存 商品价格 商品活动 会员体系 会员账户 会员活动 订单管...

飓风2000
2016/04/30
95
2
多用户商城系统 KgMall 2.1发布!

2014-5-28日,广州JUULUU发布多用户商城系统 KgMall2.1,kgMall是国内一款JAVA开源多用户版商城系统,新版KgMall更加模块化,juuluu团队重构了Kgcms的多个模块,使之更易于开发. KgMall2.1更新 1)...

聚龙软件
2014/05/28
4.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

中国龙-扬科
29分钟前
2
0
使用vuex的state状态对象的5种方式

vuex是一个专门为vue.js设计的状态管理模式,并且也可以使用devtools进行调试。 下面给大家来贴一下我的vuex的结构 下面是store文件夹下的state.js和index.js内容 //state.jsconst state =...

peakedness丶
33分钟前
2
0
NetCore MVC Demo

地址:http://114.116.9.72:5411

whltian
40分钟前
1
0
Netty handle方法周期 (四)

写了一个练习之后,发现自定义的助手类每次肯定是必须的,对于不同的业务逻辑需求,会写相对应的逻辑 最简单的查看Handle生命周期的方式,就是重写上级方法,看名字差不多应该可以知道方法的作用 ...

_大侠__
45分钟前
9
0
vue主动刷新页面及列表数据删除后的刷新实例

1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。 2.遇到的问题 1. 用vue-router重新路由到当前页面,页面是不进行刷新的 2.采用window.reload(),或者...

前端小攻略
55分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部