You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于数据库用户总数生成无重叠增量数字区间

实现方案

问题根源

原有代码的两个核心问题:

  • range(0, 100, 20)生成的序列包含端点100,遍历到100时计算终点为100+20=120,超出总用户数上限
  • 下一个区间的起点和上一个区间的终点完全一致,导致端点重叠

可用实现代码

<?php
// 可自定义配置
$totalUsers = 100; // 总用户数
$step = 20; // 区间步长

$currentStart = 0;
while ($currentStart <= $totalUsers) {
    // 终点取计算值和总用户数的较小值,避免超出上限
    $currentEnd = min($currentStart + $step, $totalUsers);
    $rangeText = "{$currentStart}-{$currentEnd}";
    echo "<button>{$rangeText}</button>";
    // 下一个区间起点+1,避免端点重叠
    $currentStart = $currentEnd + 1;
}
?>

运行后输出的区间完全符合预期:0-20、21-40、41-60、61-80、81-100。

逻辑说明

  • 用while循环替代固定range遍历,可灵活适配任意总用户数和步长配置
  • 每次计算终点时通过min()函数限制最大值不超过总用户数,不会出现超出上限的问题
  • 区间起点每次在上一个终点基础上+1,彻底解决端点重叠问题
  • 如果总用户数不能被步长整除,最后一个区间会自动适配收尾,比如总用户数为108时,最后一个区间为101-108

内容的提问来源于stack exchange,提问作者The concise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:09:03