如何获得数组成员的总和?

时间:2011-10-17 23:22:37

标签: php foreach

这是一个PHP数组:

array
  'ItemId' => 
    array
      0 => string '32' (length=2)
      1 => string '33' (length=2)
      2 => string '35' (length=2)
  'ItemQty' => 
    array
      0 => string '2' (length=1)
      1 => string '1' (length=1)
      2 => string '1' (length=1)

我想要实现的是计算ItemQty

中字符串中的数字

所以这里的结果将是4。

我尝试使用foreach循环但结果总是3而不是4(逻辑我认为,但无法解决)

上面的数组是POST值的var_dump的小版本。它用于表单验证。

$count_total = 0;

foreach ($jcart->get_contents() as $item) {     

            ++$count_total;

}

似乎复杂的是,$ jcart-> get_contents()不仅仅是一个普通的数组。至少我现在不知道如何将它应用到下面的解决方案中。

的var_dump($ jcart);给出一个总和已经存储的对象

private'itemCount'=> int 4

4 个答案:

答案 0 :(得分:3)

使用array_sum()

$sum = array_sum($arr['ItemQty']);

答案 1 :(得分:1)

如下:

echo array_sum(array_map('intval', $data['ItemQty']))

这会针对intval()数组中的每个项目调用$data['ItemQty'],然后调用array_sum来为您提供结果的总和。

答案 2 :(得分:0)

这样做:

$sum = 0;
foreach ($array['ItemQty'] as $val) {
  $sum += $val;
}

答案 3 :(得分:0)

如果您只是想对可以使用array_sum()的数字求和,如果它是单维数组。或者,您可以使用foreach循环并在添加到sum var时迭代它,如下所示:

$sum = 0;
foreach($item in $items) {
    $sum += $item;
}

由于您的问题也可能意味着计算数组中的所有值。您可以使用PHP的count()函数来计算数组中的总值。