【问题标题】:How can I get the total of specific array elements?如何获得特定数组元素的总数?
【发布时间】:2010-09-17 16:09:27
【问题描述】:

我有一个将购物车数据添加到数组数组的函数。数组如下所示:

Array ( 
[0] => Array ( [TypeFlag] => S [qty] => 2 [denom] => 50 [certMessage] => [totalPrice] =>  100 )
[1] => Array ( [TypeFlag] => S [qty] => 1 [denom] => 25 [certMessage] => [totalPrice] => 25 ) 
) 

我需要做的是获取购物车中所有商品的总价格 - 在本例中为 125。我该怎么做?我知道如何访问数组的特定值,但是如何从多个数组中获取值呢?我可以循环打印出每个值,如下所示:

$finalTotal = 0.00;
foreach($cart as $value) {
        foreach($value as $key=>$item) {            
            error_log("cart  ".$key . ": ". $item);
        }
    }

我是否需要在嵌套的 foreach 中使用 if 并说 if $key="totalPrice",将 $item 添加到 $finalTotal?还是有其他方法可以做到?

【问题讨论】:

    标签: php arrays foreach nested-loops


    【解决方案1】:

    你可以直接引用'totalPrice'

    $finalTotal = 0;
    foreach($cart as $value) {
        $finalTotal += $value['totalPrice'];
    }
    

    【讨论】:

    • $finalTotal += $value['totalPrice'] * $value['qty']; 考虑数量。
    • 我认为在例子中$value['totalPrice'] = $value['qty'] * $value['denom']
    • 我不需要考虑qty,每个数组中totalPrice的值已经是qty * unitPrice。我只需要获取所有数组的 totalPrice 值的总和,示例就是这样做的。
    【解决方案2】:

    您可以使用索引直接访问元素:

    $finalTotal = 0.00;
    foreach($cart as $value)
        $finalTotal = $finalTotal + $value['totalPrice'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 2022-06-12
      • 2016-07-14
      相关资源
      最近更新 更多