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);
foreach($temp as $k=>$v) {
if(array_key_exists($k,$stats)) {
$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;
*/
$res = $model->turnround($today,$tomorrow,$flag);
$todayPeople = array();
foreach($res as $value){
$inmatch = isset($value['inmatch']) ? json_decode($value['inmatch']) : array();
foreach($inmatch as $val) {
if(!in_array($val, $todayPeople)) {
array_unshift($todayPeople,$val);
}
}
}
$todayNum = count($todayPeople);
$atToday = $today + $interval*86400;
$atTomorrow = $tomorrow + $interval*86400;
$atRes = $model->turnround($atToday,$atTomorrow,$flag);
$atPeople = array();
foreach($atRes as $v){
$atInmatch = isset($v['inmatch']) ? json_decode($v['inmatch']) : array();
foreach($atInmatch as $val) {
if(!in_array($val, $atPeople)) {
array_unshift($atPeople,$val);
}
}
}
$same = array_intersect($todayPeople,$atPeople);
$atNum= count($same);
$ret['turnround']['all'] = $todayPeople;
$ret['turnround']['total'] = $todayNum;
$ret['turnround']['stats'] = "";
$ret['turnround']['num'] = $atNum;

php 连续留存与留存人数计算的更多相关文章

  1. 用Redis bitmap统计活跃用户、留存

    Spool的开发者博客,描述了Spool利用Redis的bitmaps相关的操作,进行网站活跃用户统计工作. 原文:http://blog.getspool.com/2011/11/29/fast-e ...

  2. Java初学者作业——编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数。

    返回本章节 返回作业目录 需求说明: 编写Java程序,根据输入的某个班级的学员成绩,计算该班级学员的平均成绩,要求输入班级的人数. 实现思路: 声明变量sum.count以及avg用于存储总成绩.班 ...

  3. MySQL计算销售员昨日各指标综合得分_20161206

    数据需求如上,新增重激活以15天未下单为界定 SELECT d.销售员,(日销售额得分*0.6+日新增客户数得分*0.15+日客单价得分*0.1+日客户平均产品数得分*0.15)AS 综合得分,日销售 ...

  4. 使用java语言,将字符串中连续重复出现的字母变成“出现次数“+字母的格式

    今天在简书上看到这样一道有趣的算法题: 解题思路 首先定义一个变量element,默认是字符串的第一个字符.以element为基准元素,去判断某个字符是否重复.然后再去定义一个变量count去记录重复 ...

  5. Flink:动态表上的连续查询

    用SQL分析数据流 越来越多的公司在采用流处理技术,并将现有的批处理应用程序迁移到流处理或者为新的应用设计流处理方案.其中许多应用程序专注于分析流数据.分析的数据流来源广泛,如数据库交易,点击,传感器 ...

  6. 从B站、爱奇艺、映客的IPO上市,看国内视频公司的内容审核现状

    本文由  网易云发布. 3月30日,中央电视台<经济半小时>栏目讲述了网络上的一个顽症——色情内容.在这期主题为<互联网上的“色诱”>的节目中,央视的记者揭示了色情直播的猖獗. ...

  7. HR数据分析常用的50个公式

    HR数据分析常用的50个公式 HR经常需要和数据打交道,如入职率.离职率.加班费计算等.虽然日常工作中,单个数据的计算并不麻烦,但几十上百个累计在一起,确实很容易混淆,甚至计算失误.今天小编急HR之所 ...

  8. 二刷Cracking the Coding Interview(CC150第五版)

    第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或 ...

  9. 如何深入理解 StatsD 与 Graphite ?

    众所周知,StatsD 负责收集并聚合测量值.之后,它会将数据传给 Graphite,后者以时间序列为依据存储数据,并绘制图表.但是,我们不知道,基于 http 访问的图表在展示时,是基于每秒钟的请求 ...

随机推荐

  1. js改变css样式的三种方法

    共用代码: <div id="div">this is a div</div> var div=document.getElementById('div') ...

  2. Remodal – 支持 Hash 追踪的响应式模态窗口

    Remodal 是一个扁平化,响应式,轻量而且容易定制的模态窗口插件,支持使用声明状态和 Hash 跟踪.您可以轻松地定义为模态弹窗定义背景景容器(如模糊效果).支持所有现代的浏览器. 您可能感兴趣的 ...

  3. VS2010在64位系统中连接64位Oracle出现的问题和解决方法

    C#使用System.Data.OracleClient连接Oracle数据库.我的是window7/64位系统,装了一个64位的oralce 11G r2 客户端是64位的 用VS10调试错误信息如 ...

  4. JavaScript学习笔记-用于模式匹配的String方法

    用于模式匹配的String方法:   String支持4种使用正则表达式的方法:           seach()用于检索,参数是一个正则表达式,返回第一个与之匹配的子串的位置,找不到则返回-1,如 ...

  5. javascript --- javascript与DOM

    javascript与DOM: 我们来个例子,一个HTML里包含一段文本和一个无序的列表. <p id="intro">My first paragraph...< ...

  6. 充分利用 SQL Server Reporting Services 图表

    最近在查SSRS的一些文章,看到MSDN在有一篇不错的文章,许多图表设置都有说明,共享给大家.. 其中有说明在SSRS中如果去写条件表达写和报表属性中的“自定义代码”,文章相对比较长,需要大家耐心的查 ...

  7. SharePoint Error - The current user is not an SharePoint Server farm administrator

    错误截图 错误日志 位置:C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS 主要错误 The c ...

  8. ArcGis 001270 : 合并数据失败

    描述 工具无法将服务所需的数据和资源打包. 如果用于发布 GIS 资源的路径或要向服务器复制的数据的路径大小超出了操作系统的限制,则当您向 ArcGIS 服务器复制数据时会发生此错误. 此路径包括过渡 ...

  9. 访问其他程序的SheardPreferents

    程序A: SharedPreferences preferences=getSharedPreferences("myPreferences", Context.MODE_WORL ...

  10. Android自定义View滑动事件处理总结

    滑动处理需要用到的各种工具类: android.view.VelocityTracker android.view.OverScroller android.view.ViewConfiguratio ...