Nested loops are loops contained within other loops, and they work well "as long as the logic is valid and the loops are tidy. The combination of such statements is particularly useful when working with dynamically created HTML tables." (124)
NOTICE: Use backslash character (\) "before the quotations marks withing the string containing the styles information for the table." Also, use the backslash character before the \n, to represent the newline character (which makes the source code easier to read). In this example, the outer loop initiales the $y variable, used to print the <tr> element. The inner loop initializes the $x variable which creates the table cells of each row, and prints the result of $x multiplied by $y.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 |
| 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 |
| 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 |
| 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 |
| 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 66 | 72 |
| 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 | 77 | 84 |
| 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96 |
| 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 | 99 | 108 |
| 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 |
| 11 | 22 | 33 | 44 | 55 | 66 | 77 | 88 | 99 | 110 | 121 | 132 |
| 12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 | 108 | 120 | 132 | 144 |
<?php
echo "<table style=\"border: 1px solid black;\"> \n";
for ($y=1; $y<=12; $y++) {
echo "<tr> \n";
for ($x=1; $x<=12; $x++) {
echo "<td style=\"border: 1px solid #000; width: 2px; padding: 4px; text-align: center;\">";
echo ($x * $y);
echo "</td> \n";
}
echo "</tr> \n";
}
echo "</table>";
?>