我在Laravel应用上有此return $ request。这段代码恰好来自“ return $ request;”。命令。
这是来自控制器
public function index(Request $request)
{
return $request;
}
这是view.blade上的打印件。与您的有很大不同:
$jsonList = '{
"_method": "POST",
"_token": null,
"cliente": "2",
"nrocpfCnpj": "00635344000177",
"originalSegmento": "4",
"example_length": "10",
"cota853": "12975",
"cota835": "11945",
"cota209": "12110",
"cota501": "12110"
}
还有我的
{
"_method": "POST",
"_token": null,
"cliente": "2",
"nrocpfCnpj": "00635344000177",
"originalSegmento": "4",
"example_length": "10",
"cota853": "12975",
"cota835": "11945",
"cota209": "12110",
"cota501": "12110"
}
我需要对每个Cota求和,但是它总是可变的,所以我永远都不会得到名字,所以我可以进行数学计算。 你们会怎么做?
有任何提示吗? 预先感谢!
答案 0 :(得分:0)
使用array_walk
和正则表达式选择带有单词cota
的键
$data = $request->all();
$sum = 0;
array_walk($data, function ($item, $key) use (&$sum){
if (preg_match('/^cota*/', $key) === 1) {
$sum += $item;
}
});
echo $sum;
答案 1 :(得分:0)
如果您知道钥匙的一部分
$json = '{
"_method": "POST",
"_token": null,
"cliente": "2",
"nrocpfCnpj": "00635344000177",
"originalSegmento": "4",
"example_length": "10",
"cota853": "12975",
"cota835": "11945",
"cota209": "12110",
"cota501": "12110"
}';
$data = json_decode($json,true);
$keyPart = 'cota';
$filtered = array_filter($data, function($k) use($keyPart) {
return strpos($k,$keyPart) === 0;
}, ARRAY_FILTER_USE_KEY);
//[
// 'cota853' => "12975"
// 'cota835' => "11945"
// 'cota209' => "12110"
// 'cota501' => "12110"
//]
$sum = array_sum($filtered);
//49140
答案 2 :(得分:0)
根据键过滤数组,然后求和:
$sum = array_sum(array_filter($request, function($k) {
return strpos($k, 'cota') === 0;
}, ARRAY_FILTER_USE_KEY);
答案 3 :(得分:0)
类似于@potiev的答案,但使用strpos而不是regex。 strpos()返回字符串开始处的偏移量或布尔值false。
$json = '{
"_method": "POST",
"_token": null,
"cliente": "2",
"nrocpfCnpj": "00635344000177",
"originalSegmento": "4",
"example_length": "10",
"cota853": "12975",
"cota835": "11945",
"cota209": "12110",
"cota501": "12110"
}';
$data = json_decode($json, true);
$sum = 0;
foreach($data as $key => $value){
if(strpos($key, 'cota') !== false){
$sum = $sum + $value;
}
}
echo $sum;
答案 4 :(得分:0)
我发现了错误。
-- server/
| build/
| apis/
| mainApi.js
| store/
| models/
| User.js
| index.js
|
| src/
| apis/
| mainApi.js
| store/
| models/
| User.js
| index.js
返回:
$data = $request->all();
$keyPart = 'cota';
$filtered = array_filter($data, function ($k) use ($keyPart) {
return strpos($k, $keyPart) === 0;
}, ARRAY_FILTER_USE_KEY);
return $filtered;
因此,我传递了一个名为cota的键,其值为853。这没有错,但不需要总和。所以我不再通过了。
谢谢你们这些家伙!