2011-01-11 70 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並構建您的查詢。