亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個數據組的篩選器

發布時間:2020-07-04 23:50:29 來源:網絡 閱讀:323 作者:LittleCode 欄目:開發技術

  一個數據組的篩選器:對一個二維母數組$motherArr,經過一個由N條苛刻條件組成的篩選器的篩選,獲取到進入篩選器數據組成的子數組$sonFirArr和篩選器外的數據組成的子數組$sonSecArr,然后隨機從子數組$sonFirArr中取出(count($sonFirArr)*m%)個元素,得到孫數組$grandsonFirArr,進一步獲取母數組$motherArr中對孫數組$grandsonFirArr的互補孫數組$grandsoSecArr,即孫數組$grandsonFirArr和孫數組$grandsoSecArr為我們需要的結果。

  具體處理如下:

1,遍歷母數組$motherArr,篩選器外的記錄放入一個新數組(子數組$sonFirArr),同時對母數組unset()該條記錄(生成子數組$sonSecArr


if($sellerParent || $buyerParent){
    $orderArr[$i] = $order;
    unset($orders[$i]);
    continue;
}
if($sellerSpreadCount  <= 10 || $buyerSpreadCount  <= 10){
    $orderArr[$i] = $order;
    unset($orders[$i]);
    continue;
}
if($order['spreadseller'] > 3 || $order['spread'] > 3){
    $orderArr[$i] = $order;
    unset($orders[$i]);
    continue;
}

注意:篩選條件中存在一個前10條的篩選,而此10條的記錄是在篩選后的篩選器外的結果遍歷時產生的,如果從對應的表里查詢是不可取的;如果采用緩存記錄條數,也不可以放在篩選器外的結果遍歷時;因為如果10條的界點正好在篩選后執行的遍歷時,同時其內出現了符合篩選條件的11,12等條。所以我在篩選遍歷時對符合產生“10條”的記錄進行緩存記錄數值

if ($order['spread']>0 && isset($userRelations[$bid])) {
    $userRelation = $userRelations[$bid];
    $parentid = $userRelation['parentid'];
    $buyerSpreadCount = $this->xmcache->get("spread_".$userRelation['id']);
    if($buyerSpreadCount){
       $this->xmcache->setEx("spread_".$userRelation['id'],3600*24*30*6,$buyerSpreadCount+1);
    }else{
        $this->xmcache->setEx("spread_".$userRelation['id'],3600*24*30*6,1);
    }
    if(in_array($parentid, $whiteUserArr)){
        $buyerParent  = true;
    }
}

這里我想說,遍歷內,如果取固定字段的另一組信息,這樣設置:將二維數組的索引設為改固定字段值,如上文對$userRelations的處理。

2,編寫隨機獲取某一數組的一定數量的元素,這個方法里主要通過隨機獲取數組索引方式從而達到需求,當然您還可以嘗試打亂數組的方式:shuffle()

注意:沒被隨機選中的元素也被返回了

private function getRandElements($array = array(), $ratio){
        if(empty($array) || !is_array($array)){
            return array('deductResult'=>array(),'resultArr'=>array());
        }
        if (!$ratio) {
            return array('deductResult'=>array(),'resultArr'=> $array);
        }
        $key = array_rand($array,ceil(count($array)*$ratio));
        if(!is_array($key)){
            $key = [$key];
        }
        $deductResult = $resultArr = array();
        foreach($key as $val){
            $deductResult[] = $array[$val];
        }
        foreach ($array as $k => $v) {
            if(!in_array($k,$key)){
                $resultArr[$k] = $v;
            }
        }
        return array('deductResult'=>$deductResult,'resultArr'=>$resultArr);
    }

3,上步獲取到$grandsonFirArr即最終的篩選器結果,如何獲取母數組$motherArr中對孫數組$grandsonFirArr的互補孫數組$grandsoSecArr?我們記得步1中的篩選外的數組$orderArr和步2中隨機外的部分$resultArr,如果合并兩者是不是就可以了?

$newOrderArr = array_merge($orderArr,$returnRes['resultArr']);

即$grandsonSecArr。





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

义马市| 阿合奇县| 鹤岗市| 东安县| 罗源县| 大余县| 宿迁市| 青海省| 石屏县| 什邡市| 泰来县| 北流市| 高邑县| 荣昌县| 洪泽县| 绥宁县| 偏关县| 政和县| 富平县| 永修县| 胶南市| 越西县| 和田县| 手游| 河南省| 长白| 温宿县| 高平市| 驻马店市| 东安县| 读书| 时尚| 定日县| 灵山县| 锦州市| 长武县| 巫山县| 长海县| 安顺市| 都安| 任丘市|