将(递归?)函数创建为;迭代;通过PHP中的数组对象
我想为我的工作创建一个日程安排器。我有一份同事名单和一份工作岗位/任务/任务清单。没有人应该被分配相同的任务,比如说,每个月超过4天,我们应该有一些混合,这样就不会有相同的人一直在一起工作 我通过与员工一起洗牌阵列实现了后者。我遇到了以下逻辑问题:当我将一名员工与工作分配和数据库中的历史记录进行比较时,我的脚本尝试在比较两个数组(一个与员工,另一个与工作分配)后分配每个员工,如果一名员工已完成了特定的工作分配,那么它将跳转到下一个。如果所有其他员工都这样做了,那么我会执行其他代码。问题是,如果一名员工已经被分配,但同时列表中的下一个任务只对他可用,那么我就找不到一个聪明的方法来重新分配/改革/重新安排这些位置 以下是我到目前为止编写的代码:将(递归?)函数创建为;迭代;通过PHP中的数组对象,php,arrays,Php,Arrays,我想为我的工作创建一个日程安排器。我有一份同事名单和一份工作岗位/任务/任务清单。没有人应该被分配相同的任务,比如说,每个月超过4天,我们应该有一些混合,这样就不会有相同的人一直在一起工作 我通过与员工一起洗牌阵列实现了后者。我遇到了以下逻辑问题:当我将一名员工与工作分配和数据库中的历史记录进行比较时,我的脚本尝试在比较两个数组(一个与员工,另一个与工作分配)后分配每个员工,如果一名员工已完成了特定的工作分配,那么它将跳转到下一个。如果所有其他员工都这样做了,那么我会执行其他代码。问题是,如果一
function check_employee($shuffled_names,$positions,$conn)
{
for($i=0;$i<count($shuffled_names);$i++)
{
if(comparison($shuffled_names[$i],$positions[0],$conn))
{
$temp_names[] = $shuffled_names[$i];
$temp_positions[] = $positions[0];
if($positions[0] != "GMP")
{
unset($positions[0]);
$positions = array_values($positions);
}
}
else
{
foreach($temp_names as $tnames)
{
if(comparison($tnames,$positions[0],$conn))
{
$temp_names[] = $tnames;
unset($tnames);
echo "tnames: ",$tnames;
$temp_positions[] = $positions[0];
break;
}
}
}
}
//print_r($temp_positions);
for($i=0;$i<count($temp_names);$i++)
$sql[] = "INSERT INTO schedules(date,name,position) VALUES (CURDATE(),'$temp_names[$i]','$temp_positions[$i]')";
foreach($sql as $query)
$conn->query($query);
return [$temp_names,$temp_positions];
}
功能检查\u员工($shuffled\u姓名,$positions,$conn)
{
对于($i=0;$i)