Как я могу вычесть значение, полученное из цикла

#php #arrays

#php #массивы

Вопрос:

Это мой код

 // $res[] has two values(75000, 30000)
// $_SESSION['requestedAmt'] = 35000
while ($row = $queryWithdrawalTable->fetch_assoc()) {
    $res[] = $row['profit_amt'];
    foreach ($res as $amt) {
        if ($_SESSION['requestedAmt'] > $amt) {
            $calc = $_SESSION['requestedAmt'] - $amt;
        } else {
            $calc = $amt - $_SESSION['requestedAmt'];
        }
    }
    echo $calc; // outputs 5000 40000 
}
  

Чего я на самом деле хочу достичь, так это

 $a[] = (1500, 3000);
$b = 2500;

while(fetch the data) {
  $res = $a - $b;
}
// output = 2000
  

Я хочу, чтобы значение в $ b вычитало первое значение в $ a (1500) и использовало результат, полученный из первого вычисления, для вычитания из второго значения (3000). пожалуйста, обратите внимание, что я новичок в программировании, поэтому любое предложение будет принято, спасибо, ребята.

Я хочу иметь возможность назначить одного пользователя для оплаты нескольким пользователям. например, пользователь1 должен заплатить 100 долларов пользователю 2 (25 долларов), пользователю 3 (50 долларов) и пользователю 4 (25 долларов). У меня есть деньги user1 в $_SESSION['requestedAmt'] , в то время как другие пользователи в $row['profit_amt']

Ответ №1:

Вы почти на месте, вы выполняете вычисление только после того, как у вас есть все значение внутри $res массива

 while ($row = $queryWithdrawalTable->fetch_assoc()) {
    $res[] = $row['profit_amt'];
}

$calc = $_SESSION['requestedAmt'];
foreach ($res as $amt) {
    if ($_SESSION['requestedAmt'] > $amt) {
         $calc = $calc - $amt;
    } else {
         $calc = $amt - $calc;
    }
}

echo $calc;

  

Или вам вообще не нужен массив $ res, выполните вычисление при извлечении строк:

 $cals = $_SESSION['requestedAmt'];
while ($row = $queryWithdrawalTable->fetch_assoc()) {
    if ($_SESSION['requestedAmt'] > $row['profit_amt']) {
         $calc = $calc - $amt;
    } else {
         $calc = $amt - $calc;
    }
}
  

Комментарии:

1. Спасибо. Возможно ли для меня заменить вычитание модулем

2. Я не уверен, чего вы пытаетесь достичь, поэтому я не могу ответить на это. Но в контексте синтаксиса вы можете это сделать.

3. Мне пришлось снять галочку с вашего ответа, потому что он не дает мне желаемого результата, который я хочу.

4. Вы не возражаете добавить больше деталей о желаемом результате к вопросу, чтобы я мог улучшить свой ответ?

5. ОК. Я хочу иметь возможность назначить одного пользователя для оплаты нескольким пользователям. например, пользователь1 должен заплатить 100 долларов пользователю 2 (25 долларов), пользователю 3 (50 долларов) и пользователю 4 (25 долларов). У меня есть деньги пользователя 1, $_SESSION['requestedAmt'] в то время как у других пользователей $row['profit_amt'] спасибо @catcon