我有2个阵列。 First Array是一维数组,包含用户ID。
像这样的数组( [0] => 1042800 [2] => 1184921 [4] => 724911 [66] => 1271106 )
我有第二个数组,它是一个关联数组,包含每个用户ID的信息。它是这样的
Harvest_DayEntry::__set_state(array('user-id'=>1042800 'hours'=>2 ,Harvest_DayEntry::__set_state(array('user-id'=>1042800 'hours'=>4 ))
这实际上是阵列的一部分。现在我有兴趣计算每个用户ID的总小时数。
这就是我的尝试。
//Add all the Hours for a Given User ID
//$output is the Array of User ID's
$resultGetEntries=$api->getProjectEntries($project_id,$range);
$dayEntries= $resultGetEntries->data;
$i=0;
$sum=$sum[20];
$sum= array_fill(0, 20, 0);
foreach ($dayEntries as $key => $value) {
if($output[i] == $value->get("user-id")) {
$sum[$i] = $sum[$i] + $value->get("hours");
}
$i++;
}
最终我想得到这样的东西
User ID Hours
1042800 15
1184921 18
724911 10
1271106 8
我不太清楚如何去做。我似乎无法弄清楚如何循环关联数组并同时计算每个用户ID的总和。我只需要知道解决这个问题的正确逻辑。
答案 0 :(得分:1)
我认为$resultGetEntries
是您的用户ID数组,$dayEntries
是Harvest_DayEntry
数组。
将两者结合起来的最简单方法是在双循环中迭代两者:
$resultGetEntries = $api->getProjectEntries($project_id,$range);
$dayEntries = $resultGetEntries->data;
$sums = array();
foreach ($resultGetEntries as $i => $userId) {
$sums[$userId] = 0;
foreach ($dayEntries as $j => $dayEntry) {
if ($dayEntry->get("user-id") == $userId) {
$sums[$userId] += $dayEntry->get("hours");
}
}
}
print_r($sums);