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=0代码>foreach外部
然后按照建议,在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
同样正确