首页 > 解决方案 > 如何对我的子任务进行分组并将值添加在一起

问题描述

我有一个看起来像这样的数组

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);

我不确定如何以及解决此问题的最佳方法是什么。

标签: php

解决方案


通过数组你可以像这样分组

$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
  )
*****//

推荐阅读