新しい質問でこの質問をすることから否定的なフィードバックを得た後...これが私の改訂された質問です。はい、それは私が取り組んでいるのと同じプロジェクトですが、基本的にラウンドロビンタイプのスケジューラーが必要かどうかはわかりませんでした。
ラウンドロビンスタイルのホッケーリーグスケジューラーに取り組んでいますが、助けが必要です。
全体的な目標は、エンド管理者ユーザーが3つの変数をパンチインし、WEEKSカウンターがヒットするまでラウンドロビンスタイルのスケジュールを実行できるようにすることです。以下は、チームの数とゲームがプレイされる週の数の例です。
$Teams = array('team1','team2','team3','team4','team5','team6','team7','team8');
$Weeks = 16;
目標は、それを16回ループさせ、週に4つのゲームを作成し、各チームに週に1回プレイさせることです。ラウンドロビンアルゴリズムでは、可能なすべての組み合わせが行われるまで、ただし16週間を超えないように、チームが毎週異なるチームでプレーする必要があります。可能な組み合わせよりも4チーム以下のチームしかない場合は、週数に達するまでラウンドロビンを最初からやり直す必要があります。
編集:
私はこのスクリプトを実行するために必要なことに約90%取り組んでいます...しかし、私は1つのことに固執しています。多次元配列のマージについてサポートが必要です。
最初はティアです。次は週です(すべてが第1週です)。次に、チームのゲームが一致します。
Array
(
[1] => Array
(
[1] => Array
(
[1] => Array
(
[home] => Whalers
[visitor] => Lumberjacks
)
[2] => Array
(
[home] => Team America
[visitor] => Wolfpack
)
)
)
[2] => Array
(
[1] => Array
(
[1] => Array
(
[home] => Warriors
[visitor] => Litchfield Builders
)
[2] => Array
(
[home] => Icemen
[visitor] => Nighthawks
)
)
)
[3] => Array
(
[1] => Array
(
[1] => Array
(
[home] => The Freeze
[visitor] => Devils Rejects
)
[2] => Array
(
[home] => Cobras
[visitor] => New Haven Raiders
)
[3] => Array
(
[home] => Crusaders
[visitor] => Whalers
)
[4] => Array
(
[home] => Blizzard
[visitor] => CT Redlines
)
)
)
)。
最終結果でティアを削除し、同じ週のゲームをすべてマージして、次のようにしたいと思います。
Array
(
[1] => Array
(
[1] => Array
(
[home] => Whalers
[visitor] => Lumberjacks
)
[2] => Array
(
[home] => Team America
[visitor] => Wolfpack
)
[3] => Array
(
[home] => Warriors
[visitor] => Litchfield Builders
)
[4] => Array
(
[home] => Icemen
[visitor] => Nighthawks
)
[5] => Array
(
[home] => The Freeze
[visitor] => Devils Rejects
)
[6] => Array
(
[home] => Cobras
[visitor] => New Haven Raiders
)
[6] => Array
(
[home] => Crusaders
[visitor] => Whalers
)
[8] => Array
(
[home] => Blizzard
[visitor] => CT Redlines
)
)
)