1 回答

TA贡献1878条经验 获得超4个赞
此代码使用while()循环创建工作天数的输出数组。它用于$current跟踪每个项目以及剩余的分配量。它还用于$dailyLeft跟踪特定日期剩余的容量。它会检查两者,如果当前小于剩余的每日容量,则会为该项目分配一整天并重置每日容量。如果当天有额外容量,则会将此项目分配给该天并获取下一个项目。
$day++仅当当天的容量已满时,该天才会增加(使用)...
$max = 1700;
$dailyLeft = $max;
$current = reset($priorityArraySum);
$output = [];
$day = 1;
while (true) {
// echo $current."/".$dailyLeft."=".$day.PHP_EOL;
if ( $current >= $dailyLeft ) {
$output[] = ["priority" => key($priorityArraySum),
"amount" => $dailyLeft,
"day" => $day++
];
$current -= $dailyLeft;
$dailyLeft = $max;
}
else {
$output[] = ["priority" => key($priorityArraySum),
"amount" => $current,
"day" => $day
];
$dailyLeft -= $current;
if ( ($current = next($priorityArraySum)) === false ) {
break;
}
}
}
print_r($output);
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报