резюме — Отфильтруйте отрицательные и положительные значения из одной переменной в переполнении стека

У меня есть переменная в PHP, куда вставляются значения из базы данных. Речь идет о деньгах. Мне нужно суммировать все отрицательные и положительные значения отдельно.

Пример:

February, I have:
+ 10
− 10
+100
− 50
− 15
+ 70
+ 80
—
Credits added: 260 Euro
Credits paid: −75 Euro

Переменная называется $amound в моем файле PHP. Я действительно понятия не имею, как это сделать.

В Excel это будет выглядеть следующим образом: =SUMMEWENN(E1:E48;"<0")

Но здесь у меня есть только переменная, не поля.

Вот какой-то код:

$reportdata["tableheadings"] = array("Transaktions-ID","Kunde","Datum","Beschreibung","Betrag");

if ($startdate && $enddate) {

$query = "SELECT tblcredit.*,tblclients.firstname,tblclients.lastname FROM tblcredit INNER JOIN tblclients ON tblclients.id=tblcredit.clientid WHERE tblcredit.date BETWEEN '".db_make_safe_human_date($startdate)."' AND '".db_make_safe_human_date($enddate)."'";
$result = full_query($query);
while ($data = mysql_fetch_array($result)) {
$id = $data["id"];
$userid = $data["clientid"];
$clientname = $data["firstname"]." ".$data["lastname"];
$date = fromMySQLDate($data["date"]);
$description = $data["description"];
$amount = $data["amount"];
$currency = getCurrency($userid);
$amount = formatCurrency($amount);
$overallamount += $amount;
//  $overallamountout -= $amount;
//  $overallamountin += $overallamount > 0;
$reportdata["tablevalues"][] = array($id,'<a href="clientssummary.php?userid='.$userid.'">'.$clientname.'</a>',$date,nl2br($description),$amount);
}

0

Решение

Действительно, это очень просто (я предполагаю, что все ваши переменные являются строками, например, поступающими из текстового файла, но даже если это не сработает):

$var1 = '+80';
$var2 = '-30';

$result = (int)$var1 + (int)$var2;

var_dump($result);

В результате: «int (50)» => Работает нормально.

0

Другие решения

Вы можете сделать это в БД

SELECT SUM(numbers) AS sum1 FROM pepa WHERE numbers > 0;
SELECT SUM(numbers) AS sum2 FROM pepa WHERE numbers < 0;
0

Хорошо,

это сделано.
Вот код, который был использован:

$summeGesamt = 0;
$summeEingezahlt = 0;
$summeAusgezahlt = 0;

$summeGesamt = $summeGesamt + $data["amount"];
if ( $data["amount"] >= 0) {
$summeEingezahlt += $data["amount"];
} else {
$summeAusgezahlt +=  $data["amount"];
}
0
По вопросам рекламы [email protected]