Home > php教程 > php手册 > 计算回头率方法,计算回头率

计算回头率方法,计算回头率

WBOY
Release: 2016-06-13 09:03:37
Original
1238 people have browsed it

计算回头率方法,计算回头率

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);
    }
Copy after login

 

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template