php 统计 最近几个月(每天)数据

/**
 * 放款统计 -- 初审
 * @return mixed
 */
public function LoanStatistice()
{
    $where = array();
    $param['regFrom']=input('channel','');

    if(trim($param['regFrom']) != ''){
        $where['regFrom']=$param['regFrom'];
    }

    //设置初始日期

    $lastmonth = date('Y-m-d',strtotime('-1 month'));
    $day_difference = gettime_day($lastmonth,date('Y-m-d'));
    $data = model('Order')->LoanStatistice($where);

    foreach($data as $key=>&$val){
        $time = $val['time'];
       $resu =  model('Repay')->getOverdueMoney($time);
        $val['sum_getOverdueMoney'] = $resu['sum_getOverdueMoney']?$resu['sum_getOverdueMoney']:'0';
        $val['today_proportion']  =  $val['sum_getOverdueMoney']/$val['sum_borrowAmount']?round($val['sum_getOverdueMoney']/$val['sum_borrowAmount'],4)*100:'0';
    }
    $sum_loanStatus = array_column($data,'sum_loanStatus','time');
    $sum_borrowAmount = array_column($data,'sum_borrowAmount','time');
    $sum_getOverdueMoney = array_column($data,'sum_getOverdueMoney','time');
    $today_proportion = array_column($data,'today_proportion','time');

    $result = '';
    for($i=0;$i<=$day_difference;$i++){
        $day_current =  date('Y-m-d',strtotime('+'.$i.' day',strtotime($lastmonth)));
        if(isset($sum_loanStatus[$day_current])){
            $result[$i]['sum_loanStatus'] = $sum_loanStatus[$day_current];
            $result[$i]['sum_borrowAmount'] = $sum_borrowAmount[$day_current];
            $result[$i]['sum_getOverdueMoney'] = $sum_getOverdueMoney[$day_current];
            $result[$i]['today_proportion'] = $today_proportion[$day_current];
            $result[$i]['time'] = $day_current;
        }else{
            $result[$i]['sum_loanStatus'] = 0;
            $result[$i]['sum_borrowAmount'] = 0;
            $result[$i]['sum_getOverdueMoney'] = 0;
            $result[$i]['today_proportion'] = 0;
            $result[$i]['time'] = $day_current;
        }
    }

    $channel = model('channel')->where('release_status','1')->column('name','english_name');
    $this->assign('channel',$channel);
    $this->assign('result',$result);
    $this->assign('regFrom',$param['regFrom']);
    return  $this->fetch();
}

public function LoanStatistice()
{
    //设置前一个月日期
    $lastmonth = date('Y-m-d',strtotime('-1 month'));
    return $this->field('sum(loanStatus=1) sum_loanStatus ,sum(borrowAmount) sum_borrowAmount,left(createTime,10) time')->whereTime('createTime','>=',$lastmonth)->group('time')->select()->toArray();

}



首先 设置 一个 时间区间 例如 30 天 。然后 直接查询 30天数据 。
foreach处理数据 补充字段
array_column   获取我想要的字段key为 时间

接着 for循环  所有 时间  对比array_column  有的值 ,如果 没有 补空
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值