• 0
  • 0

统计某个阶段的用户数量占比

2019-09-04 896 0 admin 所属分类:PHP 记录

比如要统计一个月内商城用户的复购情况。分别获取购买一次 复购两次及以上的数据,可以如下

function filterby($array, $value, $column = 'id')
{
    return array_values(array_filter($array, function ($v) use ($column, $value) {
        return $v[$column] == $value;
    }));
}


function countby($array, $value, $column = 'id')
{
    return count(filterby($array, $value, $column));
}

$result = fetch_all("SELECT count(*) as num   FROM tp_orders WHERE  status in (10,20,25,30,40) {$sql} Group by user_id having num>0");
$num_2 = countby($result,1,'num');
$num_2 = countby($result,2,'num');
$num_3 = countby($result,3,'num');

从降低数据库压力的角度看应该只查询一次。将查询得到的结果返回PHP处理。

一开始是从数据库那边对SQL做排序

order by num asc

然后用代码对二维数组做循环统计 这样可以处理 但是不利于解耦和复用 于是有了上面两个函数

核心是对二维数组中某个字段的值做判断,筛选出匹配后的二维数组 计算个数。

返回顶部