自動排序商品,同分類下間隔顯示

<?php
    //提交過來的數據
    $_POST = array('title'=>"aaaa","cid"=>12,"sort"=>0);
    
    //分類是12
    $cid = intval($_POST['cid']);php

    //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;
        }
    算法

相關文章
相關標籤/搜索