PHP商品价格区间统计

  1. 根据查询语句查出价格统计
    SELECT uid,SUM(pay_amount) AS pay_amounts  FROM bs_order GROUP BY uid ORDER BY pay_amounts;
    查询结果
    Array(    [0] => Array        (            [uid] => 14            [pay_amounts] => 5600.00        )    [1] => Array        (            [uid] => 5            [pay_amounts] => 5519.00        )    [2] => Array        (            [uid] => 9            [pay_amounts] => 1126.00        )    [3] => Array        (            [uid] => 3            [pay_amounts] => 500.00        )    [4] => Array        (            [uid] => 1            [pay_amounts] => 95.00        )    [5] => Array        (            [uid] => 0            [pay_amounts] => 10.00        ))
  2. 处理价格区间
    $list = array_column($list,'pay_amounts');
    $max_price= reset($list);
    $min_price = reset($list);
    
    
    $price_grade = 1;
    
    
    for ($i = 1; $i <= log10($max_price); $i ++) {
        $price_grade *= 10;
    }
    // 跨度
    $dx = (ceil(log10(($max_price - $min_price) / 3)) - 1) * $price_grade;
    if ($dx <= 0) {
        $dx = $price_grade;
    }
    $array = array();
    $j = 0;
    while ($j <= $max_price) {
        $array[] = array(
            $j,
            $j + $dx - 1
        );
        $j = $j + $dx;
    }
    return $array;

    返回处理结果:
    Array
    (
        [0] => Array
            (
                [0] => 0
                [1] => 999
            )
    
        [1] => Array
            (
                [0] => 1000
                [1] => 1999
            )
    
        [2] => Array
            (
                [0] => 2000
                [1] => 2999
            )
    
        [3] => Array
            (
                [0] => 3000
                [1] => 3999
            )
    
        [4] => Array
            (
                [0] => 4000
                [1] => 4999
            )
    
        [5] => Array
            (
                [0] => 5000
                [1] => 5999
            )
    
    )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值