2013-05-14 163 views
18
foreach($group as $key=>$value) 
{ 
    echo $key. " = " .$value. "<br>"; 
} 

例如:萨姆值foreach循环PHP

DOC1 = 8

DOC2 = 7

doc3的= 1

我想算$值,所以结果是8 + 7 + 1 = 16.我该怎么办?

谢谢。

+0

只要初始化变量为0以外循环,并在l中添加每个'$ value'接力。说真的,这是一个非常初级的初学者编程问题;在你试图走得更远之前,确保你清楚了真正的基本概念,否则你会遇到很多对你没有意义的事情。 – ebohlman 2013-05-14 08:07:38

回答

50
$sum = 0; 
foreach($group as $key=>$value) 
{ 
    $sum+= $value; 
} 
echo $sum; 
2

使用+=

$val = 0; 

foreach($arr as $var) { 
    $val += $var; 
} 

echo $val; 
1

您可以使用array_sum()

$total = array_sum($group); 
+0

我可以想象有人没有注册这个。每个人似乎都在重塑车轮 – peter 2017-11-06 21:50:50

+0

公平的说,算法很微不足道,有时候人们会忘记标准库中存在这样的事情。有时候,SO被锁定在一种暴民的心态中,投票回答,而忽视其他人,因为第一个_works_。 – 2017-11-07 18:58:29

0
$total=0; 
foreach($group as $key=>$value) 
{ 
    echo $key. " = " .$value. "<br>"; 
    $total+= $value; 
} 
echo $total; 
11

你的情况,如果你想要去的foreach循环比

$sum = 0; 
foreach($group as $key => $value) { 
    $sum += $value; 
} 
echo $sum; 

但是,如果你想要去与阵列的直接和上比看下面的解决方案:

$total = array_sum($group); 

对于只有数组的总和循环是浪费时间。

http://php.net/manual/en/function.array-sum.php

array_sum - 计算在阵列中

<?php 
$a = array(2, 4, 6, 8); 
echo "sum(a) = " . array_sum($a) . "\n"; 

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4); 
echo "sum(b) = " . array_sum($b) . "\n"; 
?> 

上面的例子值的总和将输出:

sum(a) = 20 
sum(b) = 6.9