I try to create a binary tree as html-table which is not recursive build. The order of the fields should be like this:
C1 C2 C3
7
3
8
1
9
4
10
11
5
12
2
13
6
14
C1 stands for col 1, C2 for col2 etc.
The following code creates a table in a recursive way, but this is not what I want!
<?php
$cols = 4;
$counter = 0;
$lines = pow(2,$cols);
echo '<table border=1 style="border:1px solid black;"> ';
for($i = 0; $i < $lines; $i++){
echo '<tr>';
for($j = 0; $j < $cols; $j++){
$rowspan = $lines/pow(2,$j+1);
if(0 === $i%$rowspan) {
$counter++;
echo '<td rowspan='.$rowspan.'>'.$counter;
}
}
}
echo '</table>';
?>
I hope someone could give me a hint how to solve this problem.
Used this expression to calculate the row’s values:
($i / $rowspan + pow(2,$j+1) - 1)wherein$i / $rowspanis the number of the row in the current level starting with0for the first row andpow(2,$j+1) - 1is the level’s first value, i.e.7for the third level.Outputs your desired result. Hope your teacher won’t hate me now! 😉
You can alternativly use
($i/$lines + 1 ) * pow(2,$j+1) - 1for the row’s value, if you don’t want to depend on $rowspan.