程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 計算回頭率方法,計算回頭率

計算回頭率方法,計算回頭率

編輯:關於PHP編程

計算回頭率方法,計算回頭率


public function probability() {
		global $_INPUT;
		$ret        = array();
		$time	    = $_INPUT['date'] && preg_match('/^\d{4}-\d{2}\-\d{2}$/', $_INPUT['date']) ? strtotime($_INPUT['date']) : strtotime('today');
		$today      = $time;          //該天時間頭
		$tomorrow   = $time + 86400;  //該天時間尾
		$flag       = 1;              //是否進入比賽
		$model      = Model::getInstance('logs.fixedlog');
		$paymodel   = Model::getInstance('main.payment');
		$stats      = array();
		$num        = 0;              //連續一周回頭人數
		$option     = isset($_INPUT['app']) ? intval($_INPUT['app']) : 1;
		$interval   = isset($_INPUT['period']) ? intval($_INPUT['period']) : 1; //時間區間一周
		if($option == 1) {
			for($i = 0;$i <= $interval;$i++) {
		        $res  = $model->turnround($today,$tomorrow,$flag);  //獲取該天參加比賽的會員
		        $temp = array(); 
		        foreach($res as $value){
		        	$inmatch = isset($value['inmatch']) ? json_decode($value['inmatch']) : array();
		            foreach($inmatch as $val) {
		            	if(!in_array($val, $temp)) {
	                        array_unshift($temp,$val);  //去掉該天重復參加比賽會員
		            	}
		            }
		        }
		        $i==0 ? $total = count($temp) : "";     
		        $temp = array_fill_keys($temp, $i);  //把會員記錄導入stats數組
		        foreach($temp as $k=>$v) {
		        	if(array_key_exists($k,$stats)) {   //如果stats數組裡面存著該會員ID,則尾部追加該登陸的每日號
	                    $stats[$k] = $stats[$k].",".$v;
		        	} else {
		        		$stats[$k] = $v;
		        	}
		        }
		        $today    = $today - 86400;   //逐次改變每日號起止時間
	            $tomorrow = $tomorrow - 86400;        
		    }
			$strlen = ($interval+1)*2-1;
			foreach($stats as $v) {
				if(isset($v)) {
					strlen(trim($v)) == $strlen ? $num++ : $num;
				}		
			}
			$ret['turnround']['all']   = $stats;
			$ret['turnround']['total'] = $total;
			$ret['turnround']['stats'] = count($stats);
			$ret['turnround']['num']   = $num;
		} else {
			$res  = $model->turnround($today,$tomorrow,$flag);  //獲取該天參加比賽的會員
			$temp = array(); 
	        foreach($res as $value){
	        	$inmatch = isset($value['inmatch']) ? json_decode($value['inmatch']) : array();
	            foreach($inmatch as $val) {
	            	if(!in_array($val, $temp)) {
                        array_unshift($temp,$val);  //去掉該天重復參加比賽會員
	            	}
	            }
	        }  
	        foreach($temp as $k=>$v) {
                $paystatus = $paymodel->hasCharge($v,$tomorrow,$today-1);
                isset($paystatus) && $paystatus['num']<>0 ? $num++ : "";

	        }
            $ret['payrate']['all']   = $temp;
            $ret['payrate']['total'] = count($temp);
			$ret['payrate']['num']   = $num;
		}
		return $this->ret($ret);
    }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved