このコードは、基本的なツリー構造のブラケットを表示します。次のことを行うために完成させようとしています:-
表示される場所:
style="border-right:2px solid #000;"
すべての行にこの境界線を使用しようとしていますが、このスクリプトは境界線を定義するためにチーム/シードの間に行を作成しません。すべてのチーム 1 からチーム 2 までのすべての行に対して境界線を右に表示しようとしています。他のすべてのラウンドでは、TEAM 1 から TEAM 2 など。
PHP エラー報告がこの次の行を返していますが、
} ELSE {
?の後にも未定義のオフセットがあります。$line[$i] .= '<td align="center" style="border-right:2px solid #000;" colspan="2">vs</td>';
3.
$array = array('Team 1', 'Team 2', 'Team 3', 'Team 4', 'Team 5', 'Team 6', 'Team 7', 'Team 8'); $j = count($array); for ($a=0; pow(2, $a) <= $j; $a++) //determine the highest power of 2 that will go into the array count { $y[$a] = 1; $maxpower = $a; } for ($i=1; $i < $j*2; $i++) { if($i % 2 != 0) //odd number rows for teams { $line[$i] = '<td class="pf_title_bg" style="border-right:2px solid #000;">' . $array[($i-1)/2] . '</td> <td class="pf_content_bg" style="border-right:2px solid #000;"> </td>'; } else { for($b=0; $b<=$maxpower; $b++) { $round = $b+1; $line2[$b] = ($b < $maxpower ? "<th colspan='2'>Round {$round}</th>" : "<th colspan='2'>Winner</th>"); if($i % pow(2, $b) == 0) //even rows for future rounds. every 2^1 rows for first winner, 2^2 for second winner, 2^3 for third and so on. { if($i % pow(2, $b+1) != 0) //does not divide by the next power of 2, so this must be the last available cell { $line[$i] .= '<td class="pf_title_bg" style="border-right:2px solid #000;">Team '.$b.'_'.($y[$b]++).'</td> <td class="pf_content_bg" style="border-right:2px solid #000;"> </td>'; } else //the input will be added in a future round { $line[$i] .= '<td align="center" style="border-right:2px solid #000;" colspan="2">vs.</td>'; } } } } } //name="WIN'.$b.'_'.($y[$b]++).' eval ("\$content = \"".$this->gettemplate("table_header")."\";"); $content.="<thead><tr>"; foreach($line2 as $col) { $content.=$col; } $content.="</tr></thead>"; foreach($line as $row) { $content.="<tbody><tr>{$row}</tr></tbody>"; } eval ("\$content.= \"".$this->gettemplate("table_footer")."\";");
これに関するヘルプは非常に高く評価されています