2017-01-30 36 views
1

返回我有此代码添加值的foreach PHP

<?php if($grades->subcompid==$subcomp->id && $grades->compid=='1' && $grades->termid=='1' && $grades->recordid==$recid && $grades->studentid==$student->studentid){ 
    echo $grades->grade; 
?> 

我想回声的值20,25,14,12和45--和上面的代码这样做。

的问题是我要添加这些值来获得116所以我这样做:

$midtermg = 0;  
<?php if($grades->subcompid==$subcomp->id && $grades->compid=='1' && $grades->termid=='1' && $grades->recordid==$recid && $grades->studentid==$student->studentid){ 
    $midtermg = $midtermg + $grades->grade; 
    echo $midtermg; 
} 

然而,它的返回值'20 45 59 71 116' 。它将该值添加到下一个值并每个回显。我试着做echo end($midtermg);,但它说它不是一个数组,所以它不起作用。如果我只想让116回应,该怎么办?

* if语句返回正确的值,所以请不介意它

+0

显示输入数据。 – Carcigenicate

+0

在主循环外回显您的变量 – Bhavik

+0

put $ midtermg = 0;并echo $ midtermg;如果有的话,在循环之外。 – mith

回答

0

就像你正在打印内部内loop.And if。刚和值值打印后if条件this.Every时间。

<?php 
$midtermg = 0;  
if($grades->subcompid==$subcomp->id && $grades->compid=='1' && $grades->termid=='1' && $grades->recordid==$recid && $grades->studentid==$student->studentid){ 
    $midtermg = $midtermg + $grades->grade; 

} 

echo $midtermg; 
0

初始化一个数组并将条件满足值推入数组,然后您可以使用此数组进行操作。

<?php 
$midtermg = 0; 
$a_results= array();  
if($grades->subcompid==$subcomp->id && $grades->compid=='1' && $grades->termid=='1' && $grades->recordid==$recid && $grades->studentid==$student->studentid){ 
    // $midtermg = $midtermg + $grades->grade; 
    array_push($a_results, $grades->grade); 
} 
echo array_sum($a_results);