创建一个(递归?)函数来迭代PHP中的数组对象

时间:2015-09-04 13:18:51

标签: php arrays

我想为我的工作创建一个计划组织者。我有一份同事名单和我们的工作岗位/任务/任务清单。没有人应该被分配相同的任务,比如说,每个月超过4天,我们应该有一些混合,以便不是同一个人一直在一起工作。

我通过与员工一起洗牌来实现后者。我遇到了以下逻辑问题:当我将员工与分配和数据库中的历史记录进行比较时,我的脚本会尝试在另一个员工之后分配2个阵列(一个与员工,另一个与分配) ,如果一名员工完成了特定的任务,那么它会跳到下一个。如果所有其他员工都已完成,那么我会执行其他代码。问题是,如果一个员工已被分配,但同时列表中的下一个任务仅对他有用,那么我找不到一种聪明的方法来重新分配/改革/重新安排这些地方。

这是我到目前为止编写的代码:

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];
}

0 个答案:

没有答案