Сложная логика цикла выполнения PHP

#php #math #while-loop

#php #математика #цикл выполнения

Вопрос:

У меня возникла проблема с написанием подходящей логики цикла while на php, вот мой код:

 $applied_to = "Battery";            # rule applies to this product
$items      = $_GET['items'];       # how many items we have of this product
$forquan    = 3;                     # rule applies to this quantity of product
$autoadd    = "Power Inverter";  # when rule is met add this product.

if ($applied_to == "Battery"){
    print "We Have $items $applied_to<br>";
    print "The rule says we need 1 $autoadd for each 1-$forquan $applied_to<br><hr />";

    $counter = $items;
    while($counter > 0){
        if ($forquan / $items > 1){
            print "we need 1 $autoadd<br>";
        }
        $counter--;
    }
}
  

Теперь я хочу добавить один дополнительный продукт, $autoadd если у нас 1-3 батареи, и 2 $autoadd , если у нас 3-6 и так далее.

Я перепробовал так много различных комбинаций операторов while loops if и т.д., Но, похоже, я не могу получить идеальный цикл.

Ответ №1:

Вы можете просто вычислить количество требуемых продуктов, а затем выполнить итерацию по этому числу:

 <?php
$applied_to = "Battery";            # rule applies to this product
$items      = $_GET['items'];       # how many items we have of this product
$forquan    = 3;                    # rule applies to this quantity of product
$autoadd    = "Power Inverter";     # when rule is met add this product.

if ($applied_to == "Battery"){
    print "We Have $items $applied_to<br>n";
    print "The rule says we need 1 $autoadd for each 1-$forquan $applied_to<br>n<hr />n";

    $countAddProducts = ceil($items / $forquan);
    for ($i=0; $i<$countAddProducts; $i  ) {
        print "we need 1 $autoadd<br>n";
    }
}
  

Затем выходные данные циклов n умножаются на строку «нам нужен 1 инвертор мощности», где n это округленное значение, $items деленное на $forquan .

Ответ №2:

математическая функция php5

 <?php 

$applied_to = "Battery";            # rule applies to this product
$items      = $_GET['items'];       # how many items we have of this product
$forquan    = 3;                     # rule applies to this quantity of product
$autoadd    = "Power Inverter";  # when rule is met add this product.

if ($applied_to == "Battery"){
    print "We Have $items $applied_to<br>";
    print "The rule says we need 1 $autoadd for each 1-$forquan $applied_to<br><hr />";

    while($items > 0){
 echo abs($forquan/$items); #check abs value
        if (abs($forquan/$items) > 1){
            print "we need 1 $autoadd<br>";
        }
        $items--;
    }
}
?>