Для цикла, как сгруппировать скобки?

У меня вопрос с группировкой скобок в цикле for. Я использую цикл for для хранения результатов турнира в массиве, но хотел бы сгруппировать результаты по их раундам. Я хочу группировать каждый раунд. Посмотрите на код ниже, и вы можете сравнить, как я хотел бы изменить код, чтобы соответствовать желаемому результату:

$tournament_size = 16;

$upper_bracket_total_matches = $tournament_size - 1;
$lower_bracket_total_matches = $tournament_size - 2;

for($i = 1; $i <= $upper_bracket_total_matches; $i++)
{
$upper_brackets[]= "[0,0]";
}

$upper_bracket_results = implode(",", $upper_brackets)

/* Upper Bracket Output
[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],
[0,0],[0,0],[0,0],[0,0],
[0,0],[0,0],
[0,0]
*/

/* Desired Upper Bracket Output
[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],
[[0,0],[0,0],[0,0],[0,0]],
[[0,0],[0,0]],
[[0,0]]
*/

for($i = 1; $i <= $lower_bracket_total_matches; $i++)
{
$lower_brackets[]= "[0,0]";
}

$lower_bracket_results = implode(",", $lower_brackets);

/* Lower Bracket Output
[0,0],[0,0],[0,0],[0,0],
[0,0],[0,0],[0,0],[0,0],
[0,0],[0,0],
[0,0],[0,0],
[0,0],
[0,0]
*/

/* Desired Lower bracket Output
[[0,0],[0,0],[0,0],[0,0]],
[[0,0],[0,0],[0,0],[0,0]],
[[0,0],[0,0]],
[[0,0],[0,0]],
[[0,0]],
[[0,0]]
*/

Надеюсь это понятно
спасибо за любую помощь

Карим.

0

Решение

Попробуйте это: он генерирует вещи в зависимости от размера:

<?php

$tournament_size = 8;
$rounds = log($tournament_size) / log(2);

$upper_bracket_results = array();
$lower_bracket_results = array();

$curr = $tournament_size;

for ($i = 0; $i <= $rounds; $i++) {
$inner = array();

for ($i2 = 0; $i2 < $curr; $i2++)
$inner[] = array(0, 0);

$curr /= 2;
$upper_bracket_results[] = $inner;
}

$curr = $tournament_size / 2;

for ($i = 0; $i < $rounds; $i++) {
$inner = array();

for ($i2 = 0; $i2 < $curr; $i2++)
$inner[] = array(0, 0);

$lower_bracket_results[] = $inner;
$lower_bracket_results[] = $inner;

$curr /= 2;
}

echo "Upper:\n\n";
echo json_encode($upper_bracket_results);
echo "\n\nLower:\n\n";
echo json_encode($lower_bracket_results);

Выход:

Upper:

[[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],[[0,0],[0,0],[0,0],[0,0]],[[0,0],[0,0]],[[0,0]]]

Lower:

[[[0,0],[0,0],[0,0],[0,0]],[[0,0],[0,0],[0,0],[0,0]],[[0,0],[0,0]],[[0,0],[0,0]],[[0,0]],[[0,0]]]
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector