Php 验证foreach Laravel中的汇总数组字段

Php 验证foreach Laravel中的汇总数组字段,php,laravel,Php,Laravel,目前我有一个工作foreach数组,它收集所有任务,并包含每个任务的权重 这是我的工作代码 foreach ($arr4 as $row4) { $taskCode = strtoupper(str_random(12)); $insert_data5[] = array( 'projCode' => $projCode, 'taskCode' => $taskCode, 'taskWeight' =>

目前我有一个工作
foreach数组
,它收集所有
任务
,并包含每个任务的
权重

这是我的工作代码

foreach ($arr4 as $row4) {
    $taskCode = strtoupper(str_random(12));
    $insert_data5[] = array(
        'projCode'  =>  $projCode,
        'taskCode'  => $taskCode,
        'taskWeight'  =>  $row4['weight'],
        'plan_days' =>  $row4['planned_days'],
        'actual_days'  =>  $row4['actual_days'],
        'deleted'  =>  0,
        'by_id'  => auth()->user()->id,
        'updated_by'    =>  auth()->user()->name,
        'created_at'    =>  now(),
        'updated_at'    => now(),
        );

}

dd($insert_data5);
输出

我要做的是验证
5个任务的
taskWeight
之和是否未达到100%,这将显示一条错误消息

到目前为止,我的想法是使用
验证器
,但我不知道如何计算
任务权重的数组字段

  $validator = Validator::make(
                $insert_data5,
                [
                   ......
                ]
            );


   if($validator->fails()){
                return redirect()
                ->back()
                ->with(['errors'=>$validator->errors()->all()])
                ->with('modal',$modal);
            }
解决了我的问题

我声明
$ttlTaskWeight=0foreach外部

然后按照建议,在
foreach

像这样

$ttlTaskWeight+=$row4['weight']

我这样做是为了验证它是否超过100%

    if($ttlTaskWeight != 100){
                return redirect()
                ->back()
                ->with(['errors'=> [0=> 'Total Task Weight must be exact 100%']])
                ->with('modal',$modal);
            }
输出是这样的


你想在这里干什么?您的意思是问如何将
任务权重的总和限制在100以下吗?那
5项任务
意味着什么?你的意思是说你想要5项任务的总和,还是总共有5项任务?我的意思是,如果我使用任务权重对所有任务进行总和,这不应该超过100%。我只想将总和限制为100%,如果
taskwight
的总和是
为什么要在服务器端执行此操作?因为
$insert\u data5
包含excel文件
99的数据=100
true和
101=100
同样正确