2011-01-11 68 views
1

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

例如2个用户1公司

 
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

您的问题不清楚。你能改说吗? – 2011-01-11 06:02:02

回答

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

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

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进行foreach并构建您的查询。