循环调度

时间:2011-01-11 05:58:37

标签: php

我需要有关循环调度的帮助。我有预约,公司,用户。

e.g。 1个公司中的2个用户

Appointment 1 user 1 company 1
appointment 2 user 2 company 1
appointment 3 user 1 company 1
appointment 4 user 2 company 1. 

使用php脚本。我被卡住了。任何人都有任何建议。请帮忙!

2 个答案:

答案 0 :(得分:2)

以下是如何实现基本循环,不确定这是你的意思,因为评论者说你有点模糊:

<?php

  $appointments = array();
  $users = array('Jon', 'Billy', 'George', 'Michael');

  for ($i = 0, $max=count($users); $i < $max; $i++) {
    for($j = $i+1; $j < $max; $j++) {
      $appointments[] = array($users[$i], $users[$j]);
    }
  }

  print_r($appointments);

?>

答案 1 :(得分:1)

您想要的是用户,公司的笛卡尔积。

function getAppts($users, $companies)
{
    $appts = array();
    foreach ($users as $user) {
        foreach ($companies as $company) {
            $appts[] = array($user, $company);
        }
    }
    return $appts;
}

$appts = getAppts(array('user1', 'user2'), array('company1'));

这将产生您需要的组合:

Array
(
    [0] => Array
        (
            [0] => user1
            [1] => company1
        )

    [1] => Array
        (
            [0] => user2
            [1] => company1
        )

)

该功能允许您添加更多用户或公司并获得所有约会组合。然后,您可以通过$appts预告并构建查询。