实现统计某个月内每天新增用户数的方法

简介:

如今有一个需求:管理员选择某一个月份,然后显示这个月每天的新增用户数。

首先获得管理员选择的日期,然后获得本月的起始时间戳和结束时间戳,在通过和member表中的addtime字段进行比較,从而获得当月新增的用户列表。这个是不难实现的。

那么要怎么获得每日的新增用户数量呢?假设要用select count(1) 这种语句配合addtime>=begin_time+86400 and addtime<=begintime+172800这种条件来查询就太恐怖了。先不说操作复杂,并且运行一次操作就要查询30或31次,这样肯定不行。

能够换一个思路,既然我们已经能够获得当月新增的用户列表members,那么每一个用户的addtime我们也能够知道了,此时能够对整个members列表进行遍历。把日期作为键名。用户数作为键值创建一个新数组。假设某条记录的addtime已经在数组中存在的话就加1,不存在的话就以这个addtime创建一个新元素。

<?php
$arr_mem = array();
foreach ($members as $k => $v) {
    $datetime = substr($v['addtime'],0,10);//得到年月日
    //得到每日新增用户数
    if(array_key_exists($datetime,$arr_mem)){
        $arr_mem[$datetime] +=1;
    }else{
        $arr_mem[$datetime] =1;
    }
}
var_dump($arr_mem);die;
/*
array (size=31)
  '2013-12-01' => int 64
  '2013-12-02' => int 191
  '2013-12-03' => int 200
  '2013-12-04' => int 217
  '2013-12-05' => int 217
  '2013-12-06' => int 228
  '2013-12-07' => int 148
  '2013-12-08' => int 91
  ... ...
*/

?>






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5244647.html,如需转载请自行联系原作者

相关文章
|
9月前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
649 141
|
7月前
|
人工智能 自然语言处理 数据可视化
AI Agent框架
AI Agent框架选型需权衡灵活性与易用性,根据团队能力、项目复杂度及合规需求选择。开发者可选LangGraph、AutoGen等高定制框架,业务侧推荐Dify、Coze等低代码平台,核心是匹配场景,而非追逐热门技术。
|
人工智能 文字识别 自然语言处理
1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!
Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。
1778 1
|
Ubuntu Linux Docker
【ClickHouse】深入浅出系列之快速部署ClickHouse
【ClickHouse】深入浅出系列之快速部署ClickHouse
|
缓存 开发工具 内存技术
ZYNQ-使用自定义AXI总线IP核进行DDR读写测试(二)
ZYNQ-使用自定义AXI总线IP核进行DDR读写测试
1712 0
ZYNQ-使用自定义AXI总线IP核进行DDR读写测试(二)
|
网络协议 Unix
EOF到底是什么意思?
我们在使用C标准I/O时,经常会看到EOF这个概念,这里需要明确的是并不存在EOF这样一个字符,它只是一个控制条件。起初,我认为EOF就是字面意思即,到达了文件的结尾(End of File)。
2134 1
|
XML C# 数据格式
Wix 安装部署教程(九) --用WPF做安装界面
原文:Wix 安装部署教程(九) --用WPF做安装界面       经常安装PC端的应用,特别是重装系统之后,大致分为两类。一类像QQ,搜狗输入法这样的。分三步走的:第一个页面可以自定义安装路径和软件许可。
2032 0
|
关系型数据库 MySQL 数据库
BookStack 详解及 Docker-Compose 部署
BookStack 是一款用于创建文档和文档管理的开源平台。它提供了一个直观且功能丰富的界面,可用于组织和管理各种文档,包括文档编写、编辑和共享。
1354 1
BookStack 详解及 Docker-Compose 部署
|
消息中间件 存储 Kafka
Kafka - 消息队列的两种模式
Kafka - 消息队列的两种模式
1135 0
|
SQL 存储 Oracle
Seata 分布式事务 XA 与 AT 全面解析
Seata 是一款开源的分布式事务解决方案,star 高达 19200+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
1608 0
Seata 分布式事务 XA 与 AT 全面解析

热门文章

最新文章