PHP |不确定此循环算法是否最有效

时间:2018-07-13 18:56:02

标签: php performance loops logic

我有一个有趣的小程序,但是我不确定嵌套循环是获得最终结果的最有效方法。

我有以下数据:

  Name         qty       sub
Widget_1   |   100   |   5   
Widget_2   |   500   |   10
Widget_3   |   1000  |   15

我是什么打算

qty并除以sub得到term。因此,我在数组中创建了另一个键:

$widget_1['term] = $widget_1['qty'] / $widget_1['sub'];

现在我有

Array
(
    [0] => Array
        (
            [name] => Widget 1
            [qty] => 100
            [sub] => 5
            [term] => 20
        )

    [1] => Array
        (
            [name] => Widget 2
            [qty] => 500
            [sub] => 10
            [term] => 50
        )

    [2] => Array
        (
            [name] => Widget 3
            [qty] => 1000
            [sub] => 15
            [term] => 67 //Rounded from 66.6
        )

)

我正在遍历,在每个term的结尾处,将sub添加到以下widget中。

因此,例如,在$widget[0]期末,term30上还有$widget[1]qty300

到那时,我取$widget[0]的{​​{1}}并将其添加到sub的{​​{1}},有效地减少了{{ 1}}。

然后$widget[1]更新项变为sub-有效地将term actual 项减少到40。 / p>

然后在widget[1]的{​​{1}}(共40个)的末尾–取汇总的$widget[1]的{​​{1}}并将其添加到20。s子

$widget[1]的期限为40,而15的子项为15。使$widget[1]的余数为term,剩下的$widget[1]sub。 15,然后将其添加到$widget[2]的原始$widget[2]中,得到30。更新为$widget[2]'s qty变为13。 {1}}的实际总数为$widget[1] 54,而不是67

这是我的程序-运行命令行,按预期运行功能-我很好奇这是最佳实践,还是更有效地使用sub / {{1 }}?也许只有我一个人,但这感觉很“凌乱”。检查$widget[2]是否大于sub且小于0等。是否有更好的算法以更简洁,更有效的格式获得相同的结果?

term

0 个答案:

没有答案