首页 > 解决方案 > 在 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 个)

现在,如果有人以 135 美元的价格购买 3 个插槽。这将使 5slots_received和 $225 money_received

现在列表需要更改为以下内容:

等等...

这是我目前正在尝试的,但我的循环不正确。

<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 个,并且计数也关闭了......

我认为循环从 0 开始的事实让我失望。如果有人可以帮助我纠正我的循环,我将不胜感激。

标签: phplaravelloopsfor-loop

解决方案


我想到了。

<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 个插槽。

我不会将其标记为正确/最佳答案,因为它很可能会写得更好。


推荐阅读