php - 如何对我的子任务进行分组并将值添加在一起
问题描述
我有一个看起来像这样的数组
array:5 [
"Task 1" => array:4 [
"SubTask 1" => 1.0
"SubTask 2" => 4.0
"SubTask 3" => 1.0
"SubTask 4" => 1.0
]
"Task 2" => array:3 [
"SubTask 5" => 1.0
"SubTask 6" => 1.0
"SubTask 4" => 1.0
]
"Task 3" => array:3 [
"SubTask" => 5.0
"SubTask 6" => 1.0
"SubTask 5" => 1.0
]
"Task 4" => array:2 [
"SubTask 6" => 1.0
"SubTask 7" => 1.0
]
"Task 5" => array:3 [
"SubTask 1" => 1.0
"SubTask 6" => 1.0
"SubTask 7" => 1.0
]
]
我想要的是能够将子任务组合在一起并计算小时数。
这是我的代码
$subTaskArr = [];
foreach($projects as $projectCode => $project)
{
foreach($project->getTasks() as $taskKey => $taskValue)
{
$testArr = [];
foreach($taskValue->getWorkers() as $workerKey => $workerValue)
{
$testArr[$workerKey] = $workerValue->getHours();
}
}
$subTaskArr[$projectCode] = $testArr;
}
dd($subTaskArr);
我不确定如何以及解决此问题的最佳方法是什么。
解决方案
通过数组你可以像这样分组
$SubTask = array();
foreach($array as $key=>$val){
foreach($val as $index=>$value){
if(!(isset($SubTask[$index]))) $SubTask[$index] = 0;
$SubTask[$index] += floatval($value);
}
}
print_r($SubTask);
//****
Output
Array
(
[SubTask 1] => 2
[SubTask 2] => 4
[SubTask 3] => 1
[SubTask 4] => 2
[SubTask 5] => 2
[SubTask 6] => 4
[SubTask] => 5
[SubTask 7] => 2
)
*****//
推荐阅读
- php - 如何让 PoEdit 识别来自 Symfony Translator 组件的复数字符串
- swift - UITests 如何检测 UITableView backgroundView 上的元素?
- ios - 如何从 CNContactPickerViewController 获取选定的contactProperty
- java - 获取发布到 JAXB Web 服务端点的 XML 字符串
- javascript - 如何在javascript中的任何特定多字符字符串之前替换字符串的一部分?
- react-native - 正确上传 React Native 源映射到 Bugsnag
- java - SQL Server 和其他的休眠生成类型
- redirect - 关于 web.config 中从文件夹到子文件夹的 301 重定向的混淆
- mysql - MYSQL:拆分字符串,出现次数可变
- amazon-web-services - 物联网规则正在向 SNS 发送消息,但 SNS 无法发送通知