PHP 数组总结会话值在删除逗号后不添加项目

PHP array sum up session value not adding item after removing comma

我正在尝试使用以下代码将一组价格的总和相加:


 foreach ($_SESSION['cart'] as $item) {
    $sum += str_replace(",", "", $item['price']);
    echo $sum;                   
}

上面的

$item['price']10,000 and 5,000 并且我使用 str_replace 删除逗号并将值与 += 相加而不是 echo $sum给出 15000 它给出 1000015000 我不知道我哪里弄错了。

试试这个:

 foreach ($_SESSION['cart'] as $item) {
    $sum += intval(str_replace(",", "", $item['price']));                
 }
 echo $sum;   

您的代码有效。问题不在于您的价值观或您的 +=。问题是您在 foreach 中回显总和,这意味着您首先添加 10000,然后回显。然后加上 5000,这会给你 15000,然后你在你已经回显的第一个 10000 之后回显。

只需将 echo 放在 foreach 之后 就可以了。

foreach ($_SESSION['cart'] as $item) {
    $sum += str_replace(",", "", $item['price']);
}
echo $sum;