#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