【问题标题】:Advice on adding values from array in php在 php 中从数组中添加值的建议
【发布时间】:2015-12-16 11:39:34
【问题描述】:

我已经在这方面工作了几天了,但我无法弄清楚我做错了什么。如果有人能提供一些建议或解决方案,将不胜感激。

对.... 我们有一个简单的 sql 脚本,它根据会话在购物车中搜索购物车中的产品列表。

$sqlCommand = "SELECT * FROM shoppingcart WHERE sessionid ='$sessionid' ORDER BY id DESC"; 
$query = mysqli_query($connection, $sqlCommand) or die (mysqli_error());
$CartList1 = '';
while ($row = mysqli_fetch_array($query)) { 
    $custquantity1 = $row["quantity"];
    $custprice1 = $row["price"];
    $calcustprice1 = $custprice1 * $custquantity1;

    $CartList1 .= '' .$calcustprice1. ',';
}
mysqli_free_result($query);

上面所做的是收集价格并按数量计算。这一点效果很好。

接下来我们要做的是将所有这些值添加为“购物车总价”。

然后我们修剪尾随逗号并组装成一个数组。 这不像将它们收集到一个键中那样按预期工作?

我们要问的是有没有一种解决方案或更简单的方法可以将 $CartList1 的输出相加?

  $trimmedarray = rtrim($CartList1, ',');

    $a = array($trimmedarray);


    print_r($a);

输出结果

Array ( [0] => 6.99,41.93 ) 

所以本质上我们想要将 $array[0] 中的所有数值相加。希望我已经正确解释了这一点,希望上面的代码不会混入消息中,请记住我是新来的堆栈溢出。

如果有人知道我如何轻松解决这个问题,请提前非常感谢。

【问题讨论】:

  • 遍历数组 $a 并添加所有值就是你在说什么?
  • 某种...由于某种原因,它将所有值放在一个键中,因此不是 $a[0] =>6.99 和 $a[1] => 41.99 等等在 $a[0] 中,否则我可能已经可以使用 array_sum($a) 或者说实话我有点困惑

标签: php mysqli sum


【解决方案1】:
$sum=0;
foreach($a as $val){
  $sum+=floatval($val);
}

echo $sum;

【讨论】:

    【解决方案2】:
    while ($row = mysqli_fetch_array($query)) { 
    $custquantity1 = $row["quantity"];
    $custprice1 = $row["price"];
    $calcustprice1[] = $custprice1 * $custquantity1;
    
    $CartList1 .= '' .$calcustprice1. ',';
    }
    echo array_sum($calcustprice1);
    mysqli_free_result($query);
    

    【讨论】:

    • 太棒了!!!非常感谢你们,这是一种享受,我希望你们在假期过得愉快,非常感谢你们的时间和专业知识。
    • 我的荣幸 Castor,感谢您的赞赏。
    【解决方案3】:
    $cartList = array();
    
    while ($row = mysqli_fetch_array($query)) {
        $cartList[] = $row["quantity"] * $row["price"];
    }
    
    $totalPrice = array_sum($cartList);
    

    【讨论】:

      【解决方案4】:

      您可以使用array_sum()。供参考php.net - array_sum()

      【讨论】:

      • 感谢您的快速响应,试过了,但它唯一的输出 Array ( [0] => 6.99,41.93 ) 它没有将它们加在一起?
      • @Amitabh 也在使用 array_sum(),并且您将他的答案标记为正确
      • 嗨 Vishal,是的,对不起,我想我只是需要在上下文中查看它,在咨询你们之前使用不同的方法尝试了几次 :) 感谢您的帮助,我们总是很感激。
      猜你喜欢
      • 1970-01-01
      • 2018-03-31
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2016-03-10
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多