php - 在 for 循环 PHP 中处理变量数据
问题描述
我的数据库中有以下带有可变数据的值:
slots_needed
| slots_received
| money_needed
|money_received
当这些值被填充时,例如,像这样。
slots_needed = 8
|
slots_received = 2
|
money_needed = 360
|
money_received = 90
我需要输出如下所示:(注意slots_received
已经有 2 个)
- 插槽 1 = 45 美元
- 插槽 2 = 90 美元
- 插槽 3 = $135
- 插槽 4 = $180
- 插槽 5 = $225
- 插槽 6 = 270 美元(这是允许达到的剩余金额
money_needed
)
现在,如果有人以 135 美元的价格购买 3 个插槽。这将使 5slots_received
和 $225 money_received
。
现在列表需要更改为以下内容:
- 插槽 1 = 45 美元
- 插槽 2 = 90 美元
- 插槽 3 = 135 美元(这是允许达到的剩余金额
money_needed
)
等等...
这是我目前正在尝试的,但我的循环不正确。
<ul>
@for ($i = $slot->slots_received; $i <= $slot->slots_needed; $i++)
<li>Slot {{ $i }}: {{ ($slot->money_needed / $slot->slots_needed) * $i }}</li>
@endfor
</ul>
这输出 7 个插槽而不是 6 个,并且计数也关闭了......
- 插槽 2 = 90 美元
- 插槽 3 = $135
- 插槽 4 = $180
- 插槽 5 = $225
- 插槽 6 = $270
- 插槽 7 = $315
- 插槽 8 = $360
我认为循环从 0 开始的事实让我失望。如果有人可以帮助我纠正我的循环,我将不胜感激。
解决方案
我想到了。
<ul>
@for ($i = $slot->slots_received; $i < $slot->slots_needed; $i++)
@if($slot->sponsors_received == 0)
<li>Slot {{ $i + 1 }}: {{ ($slot->money_needed / $slot->slots_needed) * $i + 1 }}</li>
@else
<li>Slot {{ $i - 1 }}: {{ ($slot->money_needed / $slot->slots_needed) * $i - 1 }}</li>
@endif
@endfor
</ul>
这会以正确的顺序和数量输出以下剩余插槽:
- 插槽 1 = 45 美元
- 插槽 2 = 90 美元
- 插槽 3 = 135 美元
- 插槽 4 = $180
- 插槽 5 = $225
- 插槽 6 = $270
如果为 0 slots_received
,它将根据场景以正确的顺序和数量输出所有 8 个插槽。
我不会将其标记为正确/最佳答案,因为它很可能会写得更好。
推荐阅读
- visual-studio - Visual Studio 2017 构建工具附带的 MSBuild 离线安装程序无法在发布模式下构建项目
- javascript - 按钮未在 HTML5 中加载
- bash - 如何从 pwsh 运行 bash 命令?
- ios - 使用 VIPER 架构时 UI 视图控制器未更新
- javascript - 将 Discord 机器人推送到 Heroku 时出错:推送被拒绝,无法编译 Node.js 应用程序
- selenium - 抓取数据时如何在 selenium 中使用代理来避免 IP 限制?
- python - 将一个列表的元素除以另一个列表的元素
- excel - Email scraper from a list of urls
- react-native - 在反应本机中使用导航抽屉反应备忘录
- matplotlib - Matplotlib 的线宽问题