Home >Backend Development >PHP Tutorial >Method to calculate return rate, calculate return rate_PHP tutorial

Method to calculate return rate, calculate return rate_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:52:551618browse

How to calculate the return rate, calculate the return rate

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);
    }

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1005209.htmlTechArticleMethod to calculate return rate, calculate return rate public function probability() {global $_INPUT;$ret = array() ;$time = $_INPUT['date'] preg_match('/^d{4}-d{2}-d{2}$/', $_INPUT['date']) ?...
Statement:
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