文档章节

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

m
 mezongzi
发布于 2017/07/06 23:52
字数 392
阅读 6
收藏 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;
        }
    

© 著作权归作者所有

共有 人打赏支持
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.4K
6
金刚多用户商城系统--kgMall

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

聚龙软件
2011/11/12
19.8K
1
KgMall More Shop 店中店版更新包发行!

KgMall More Shop店中店版最新更新包发行!新版增加绿色模板一套,店铺模板一套,增加Gres web资源库等。 发行通告:KgMall More Shop 中文版将软件发布到360云盘,服务器不再维护软件包更新...

zkk6636
2014/03/18
1K
1
多用户商城系统 KgMall 2.1发布!

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

聚龙软件
2014/05/28
4K
0
电商业务元素

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

飓风2000
2016/04/30
95
2

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部