Home > Backend Development > PHP Tutorial > How to calculate return rate

How to calculate return rate

WBOY
Release: 2016-08-08 09:23:47
Original
1795 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

The above introduces the method of calculating return rate, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
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 Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template