Просмотр поста

.
Str@nnik

Ruslan444,

function (+/-)
function generateCalendar($array, $time)
{
    shuffle($array);
    $all = count($array);
    $matches = $all / 2;
    shuffle($array);

    for ($i = 1; $i < $all + 1; $i++)
    {
        $a[] = $i;
    }

    for ($j = 0; $j < $all; $j++)
    {
        $b[] = $array[$j];
    }

    $array = array_combine($a, $b);

    if ($all % 2 == 0) {
        // 1 Круг
        echo 'Тур №1<br />';
        for ($i = 1; $i <= $matches; $i++)
        {
            echo $array[$i] . ' - ' . $array[($all - $i + 1)] . ' time ' . date("d-M-Y G:i:s", $time) . '<br />';
        }

        for ($i = 2; $i <= $all - 1; $i++)
        {
            echo 'Тур №' . $i . '<br />';
            $array2 = $array[2];

            for ($y = 2; $y < $all; $y++)
            {
                $array[$y] = $array[$y + 1];
            }

            $array[$all] = $array2;

            for ($j = 1; $j <= $matches; $j++)
            {
                echo $array[$j] . ' - ' . $array[($all - $j + 1)] . ' time ' . date("d-M-Y G:i:s", $time + (3600 * 24 * ($i - 1))) . '<br />';
            }
        }

        // 2 Круг
        $b = $all * 2 - 2;
        for ($i = $all; $i <= $b; $i++)
        {
            echo 'Тур №' . $i. '<br />';
            $array2 = $array[2];

            for ($y = 2; $y < $all; $y++)
            {
                $array[$y] = $array[$y + 1];
            }

            $array[$all] = $array2;

            for ($j = 1; $j <= $matches; $j++)
            {
                echo $array[($all - $j + 1)] . ' - ' . $array[$j] . ' time ' . date("d-M-Y G:i:s", $time + (3600 * 24 * ($i - 1))) . '<br />';
            }
        }
    } else {
        echo 'bad';
    }
}

$array = array('1' => '1', '2', '3', '4', '5', '6', '7', '8');
generateCalendar($array, time());

//// (+/-)
Тур №1
2 - 6 time 11-Jul-2016 20:11:23
7 - 3 time 11-Jul-2016 20:11:23
8 - 5 time 11-Jul-2016 20:11:23
4 - 1 time 11-Jul-2016 20:11:23
Тур №2
2 - 7 time 12-Jul-2016 20:11:23
8 - 6 time 12-Jul-2016 20:11:23
4 - 3 time 12-Jul-2016 20:11:23
1 - 5 time 12-Jul-2016 20:11:23
Тур №3
2 - 8 time 13-Jul-2016 20:11:23
4 - 7 time 13-Jul-2016 20:11:23
1 - 6 time 13-Jul-2016 20:11:23
5 - 3 time 13-Jul-2016 20:11:23
Тур №4
2 - 4 time 14-Jul-2016 20:11:23
1 - 8 time 14-Jul-2016 20:11:23
5 - 7 time 14-Jul-2016 20:11:23
3 - 6 time 14-Jul-2016 20:11:23
Тур №5
2 - 1 time 15-Jul-2016 20:11:23
5 - 4 time 15-Jul-2016 20:11:23
3 - 8 time 15-Jul-2016 20:11:23
6 - 7 time 15-Jul-2016 20:11:23
Тур №6
2 - 5 time 16-Jul-2016 20:11:23
3 - 1 time 16-Jul-2016 20:11:23
6 - 4 time 16-Jul-2016 20:11:23
7 - 8 time 16-Jul-2016 20:11:23
Тур №7
2 - 3 time 17-Jul-2016 20:11:23
6 - 5 time 17-Jul-2016 20:11:23
7 - 1 time 17-Jul-2016 20:11:23
8 - 4 time 17-Jul-2016 20:11:23
Тур №8
6 - 2 time 18-Jul-2016 20:11:23
3 - 7 time 18-Jul-2016 20:11:23
5 - 8 time 18-Jul-2016 20:11:23
1 - 4 time 18-Jul-2016 20:11:23
Тур №9
7 - 2 time 19-Jul-2016 20:11:23
6 - 8 time 19-Jul-2016 20:11:23
3 - 4 time 19-Jul-2016 20:11:23
5 - 1 time 19-Jul-2016 20:11:23
Тур №10
8 - 2 time 20-Jul-2016 20:11:23
7 - 4 time 20-Jul-2016 20:11:23
6 - 1 time 20-Jul-2016 20:11:23
3 - 5 time 20-Jul-2016 20:11:23
Тур №11
4 - 2 time 21-Jul-2016 20:11:23
8 - 1 time 21-Jul-2016 20:11:23
7 - 5 time 21-Jul-2016 20:11:23
6 - 3 time 21-Jul-2016 20:11:23
Тур №12
1 - 2 time 22-Jul-2016 20:11:23
4 - 5 time 22-Jul-2016 20:11:23
8 - 3 time 22-Jul-2016 20:11:23
7 - 6 time 22-Jul-2016 20:11:23
Тур №13
5 - 2 time 23-Jul-2016 20:11:23
1 - 3 time 23-Jul-2016 20:11:23
4 - 6 time 23-Jul-2016 20:11:23
8 - 7 time 23-Jul-2016 20:11:23
Тур №14
3 - 2 time 24-Jul-2016 20:11:23
5 - 6 time 24-Jul-2016 20:11:23
1 - 7 time 24-Jul-2016 20:11:23
4 - 8 time 24-Jul-2016 20:11:23