很难提问题! 好吧,我有$ request中的这个对象:
{
"_method": "POST",
"_token": null,
"cliente": "1",
"cota": "853",
"grupo": "07384",
"idERP": "1",
"novoSegmento": "3",
"nrocpfCnpj": "00635344000177",
"natureza_juridica": "206-2 - Sociedade Empresária Limitada",
"porte": "MICRO EMPRESA",
"originalSegmento": "7",
"example_length": "10",
"cota853": "12975",
"cota209": "12110"
}
我必须对cota ***中的值求和,这很棘手。 首先,我在$ result中使用以下方法搜索了“ cota”一词:
if (strpos($request, 'cota') !== false) {
return 'true';
}
从现在开始,我不知道如何继续: 1-)获得多少“ cota”? 2-)如何获得每个值的总和?
有什么想法吗?这是最好的方法吗? 我希望我能说清楚。
谢谢!
答案 0 :(得分:3)
如果使用表单传递此参数,则最好制作一个cotas
数组,然后使用laravel中强大的集合对其求和,如下所示:
// in your blade
<input name="cota[]" value="100" />
<input name="cota[]" value="200" />
// in the controller
$total = collect($request->get('cota'))->sum();
或遍历请求值并求和:
$total = 0;
foreach ( $request->all() as $key => $value )
{
if (strpos($key, 'cota') !== false) {
$total += $value;
}
// or regex version to exclude the cota
if ( preg_match('/cota[0-9]+/', $key) )
{
$total += $value;
}
}
// here you will have the total sum
答案 1 :(得分:0)
您可以将请求转换为集合,并使用如下所示的回调进行总和:
$sum = collect($request->all())->filter(function ($value, $key) {
return Str::startsWith($key, 'cota');
})->sum();