【问题标题】:php - how to add all the numbers in an arrayphp - 如何将数组中的所有数字相加
【发布时间】:2018-03-28 00:15:30
【问题描述】:
  [
      {
         "total": 71
      },
      {
         "total": 66
      }
  ]

如何将这两个数字相加得到 = 137。我尝试了 array_sum($array_result) 但吐口水和错误说:

array_sum() expects parameter 1 to be array, object given

这是我的代码

$result = DB::table('marks')->where([
        ['term', $request->term],
        ['subject', $request->subject],
        ['class', $student->class],
        ['arm', $student->arm],
    ])->select('total')->get();

return array_sum($result);

return redirect()->back()->with('success', 'Results marked successfully.');

【问题讨论】:

  • array_sum() 接受一个数组,而不是错误消息中解释的对象。尝试对结果 e 使用 for 循环将每个键“total”的值相加

标签: php arrays laravel laravel-5.4 laravel-5.5


【解决方案1】:

最容易将它们放入集合并调用sum() 方法。

这样:

$sum = collect($yourArray)->sum('total');

你也可以使用 foreach 和一个临时变量来做到这一点。

【讨论】:

    【解决方案2】:

    如果只需要总结total,使用sum()Query Builder方法:

    $result = DB::table('marks')->where([
        ['term', $request->term],
        ['subject', $request->subject],
        ['class', $student->class],
        ['arm', $student->arm],
    ])->sum('total');
    

    【讨论】:

      【解决方案3】:
      $result = DB::table('marks')->where([
          ['term', $request->term],
          ['subject', $request->subject],
          ['class', $student->class],
          ['arm', $student->arm],
      ])->select('total')->get();
      
       $result = $result->toArray();
      

      现在您可以按照 devk 的说明简单地执行此操作

      collect($result)->sum('total');
      

      get()返回收藏。您直接对集合执行操作

      点赞get()->sum('total')

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        相关资源
        最近更新 更多