阵列
{"dev_name":"Alexandria","completed":"7","date":"2022-01-03"}
{"dev_name":"Alexandria","completed":"6","date":"2022-01-04"}
{"dev_name":"Alexandria","completed":"3","date":"2022-01-05"}
{"dev_name":"Bo","completed":"13","date":"2022-01-04"}
{"dev_name":"Bo","completed":"14","date":"2022-01-05"}
{"dev_name":"Charlie","completed":"12","date":"2022-01-03"}
{"dev_name":"Charlie","completed":"17","date":"2022-01-04"}
control_current_year_ticket_total = array();
$byWeek = array();
$sum = 0;
foreach ($best_day as $day) {
$date = DateTime::createFromFormat('Y-m-d', $day['date']);
$init_date = $date->format("Y-m-d");
$n = strtotime($init_date);
$week = week_number($n);
$comp = $day['daily_completed'];
$dev = $day['dev_name'];
$sum += $day[ 'daily_completed' ];
if (!isset($byWeek[$week][$dev]) || $completed > $byWeek[$dev][$week][$dev][1]) {
$byWeek[$week][$dev] = [
$sum
];
}
}
我创建了一个var来获得每个开发人员在一周内完成的值的总数。这是我得到的结果,应该是亚历山大:16,Bo:27,查理:29
{"2":{"Alexandria":[7],"Bo":[29],"Charlie":[55]}}
control_current_year_ticket_total = array();
$byWeek = array();
$sum = 0;
foreach ($best_day as $day) {
$date = DateTime::createFromFormat('Y-m-d', $day['date']);
$init_date = $date->format("Y-m-d");
$n = strtotime($init_date);
$week = week_number($n);
$comp = $day['daily_completed'];
$dev = $day['dev_name'];
$sum += $day[ 'daily_completed' ];
if (!isset($byWeek[$week][$dev]) || $completed > $byWeek[$dev][$week][$dev][1]) {
$byWeek[$week][$dev] = [
$sum
];
}
}
将端阵列$byWeek[$week][$dev] = [$sum];
更改为不带括号的$byWeek[$week][$dev] = $sum;
control_current_year_ticket_total = array();
$byWeek = array();
$sum = 0;
foreach ($best_day as $day) {
$date = DateTime::createFromFormat('Y-m-d', $day['date']);
$init_date = $date->format("Y-m-d");
$n = strtotime($init_date);
$week = week_number($n);
$comp = $day['daily_completed'];
$dev = $day['dev_name'];
$sum += $day[ 'daily_completed' ];
if (!isset($byWeek[$week][$dev]) || $completed > $byWeek[$dev][$week][$dev][1]) {
$byWeek[$week][$dev] = $sum ;
}
}
正如评论所说,如果数据来自数据库,则使用SQL直接按周对数据进行分组