php - 在@foreach Laravel 5.2 中获取重复行的总和

标签 php mysql laravel-5

我找到了 Sum values in foreach loop php 但我需要根据我的情况进行调整。我有包含三个评级和 user_id 的表格。我需要从管理表中每个用户的所有评分中获取平均值。例如,如果用户制作了两个作品并且有 5,5,5 和 5,5,4 我想显示 4.835 ,但我得到的不是这个:

user_id -- 平均值

200 -- 4.67 | 4.835 |

我需要:

200 -- 4.835

Controller :

$feedbacks = DB::table('feedback')->groupBy('user_id')->paginate(100);
$feedbacks_get = DB::table('feedback')->get();

Blade :

@foreach( $feedbacks as $wrk)
        <tr>
        <td>
        {{$wrk->user_id}}
        </td>
        <td>
        <?php $sum = 0;$i = 0;?>
        @foreach($feedbacks_get as $e)
        @if ( $e->user_id == $wrk->user_id)
        <?php
        $i++;
        $sum+= (($e->rating1 + $e->rating2 + $e->rating3 ))/3;
        $result= round($sum,2)/$i   .' | ';
        if($result<=4){
          echo '<span class="red;">'.$result.'</span>' ;
        }
        elseif($result>4){
          echo $result;
        }
        ?>
        @endif
        @endforeach
        </td>
        </tr>
  @endforeach

最佳答案

        @foreach( $feedbacks as $wrk)
    <tr>
    <td>
    {{$wrk->user_id}}
    </td>
    <td>
    <?php $sum = 0;$i = 0;?>
    @foreach($feedbacks_get as $e)
    @if ( $e->user_id == $wrk->user_id)
    <?php
    $i++;
    $sum+= (($e->rating1 + $e->rating2 + $e->rating3 ))/3;

    ?>
    @endif
    @endforeach
    $result= round($sum,2)/$i   ;
    if($result<=4){
      echo '<span class="red;">'.$result.'|</span>' ;
    }
    elseif($result>4){
      echo $result.' | ';
    }
    </td>
    </tr>
  @endforeach

关于php - 在@foreach Laravel 5.2 中获取重复行的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540736/

相关文章:

php - 如何让 Facebook Debugger 读取规范 URL?

php - 关系字段上的排序依据

mysql - 在 MySQL 中声明外键

php - 如何在输出前重组帖子

php - 回滚 mysql 查询结果后,无法重新使用查询

php - 从 PHP 查询中获取 Json

php - 使用 ListBoxField 保存为 Many_many 关系

php - 更新 SQL 查询未执行

php - 加载所有帖子并检查该帖子是否在 Laravel 中被喜欢

mysql - Laravel 5数据库查询检索第一个表数据但不在其他表中