Laravel 在拉威尔获得已完成的项目总数
我试图计算游戏中已完成活动的数量。举个例子,我把网球、板球和高尔夫作为我的运动,在每一项运动中都有活动和小组 比如说,我的网球成绩是5分 下面是数据结构Laravel 在拉威尔获得已完成的项目总数,laravel,Laravel,我试图计算游戏中已完成活动的数量。举个例子,我把网球、板球和高尔夫作为我的运动,在每一项运动中都有活动和小组 比如说,我的网球成绩是5分 下面是数据结构 "Tennis": { "group":{ "Group 1": { "name": "Group name 1", "activities": { "activity 1": { "completed
"Tennis": {
"group":{
"Group 1": {
"name": "Group name 1",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 0
}
}
},
"Group 2": {
"name": "Group name 2",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 3
}
}
}
}
}
"Cricket": {
"group":{
"Group 1": {
"name": "Group name 1",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 0
}
}
},
"Group 2": {
"name": "Group name 2",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 3
}
}
}
}
}
"Golf": {
"group":{
"Group 1": {
"name": "Group name 1",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 0
}
}
},
"Group 2": {
"name": "Group name 2",
"activities": {
"activity 1": {
"completed" : 1
},
"activity 2": {
"completed" : 3
}
}
}
}
}
我的代码
$result = [];
foreach($games->getGroups as $key => $group)
{
foreach($group->getActivites as $code => $activity)
{
$result[$code] = $activity->getComplete();
}
}
return $result;
在我的Activity.php中
public function getComplete(): float
{
return $this->complete;
}
我一直在努力想我该怎么做。我也在使用laravel。你可以利用laravel+
在每个组的活动上使用一个略短的方法,从而减少了一个嵌套的可调用方法: 收集$games->mapfunction$物品{ 返回收集$item->group->map->activities->sumfunction$item{ 返回收集$item->sum'completed'; }; }->托雷;
显示正确的代码now@chojnicki-对不起。我已经更新了我的问题。在运行代码后,您能告诉我们$result中的内容吗?
collect($games)->map(function($game){
return collect($game['groups'])->map(function($group){
return collect($group['activities'])->map(function($activity){
return $activity['completed'];
})->sum(); // sum of all the activities
})->sum(); // sum of all the groups in a game -- this is what you are looking for
})->toArray();