|
|
|
| Есть такой код:
<?php
$col = ""; $row = ""; $page = ""; $t = ""; $u = "";
for ($i = 0; $i < 3; $i++) // Страницы
{
$page = '<table border="1">' . $page;
for ($j = 0; $j < 4; $j++) // Строки
{
$row = "<tr>" . $row;
for ($k = 0; $k < 2; $k++) // Столбцы
{
$col = "<td>" . $col; $u++;
$col = $col . "№$u";
$col = $col . "</td>";
$row .= $col; $col = "";
}
$row = $row . "</tr>";
$page .= $row; $row = "";
}
$page = $page . "</table><br>";
$t .= $page; $page = "";
}
echo $t;
?>
|
Он выводит номера. Так вот задача состоит в том, чтобы при достижении какого-либо определенного номера, все циклы бы останавливались.
Я сделал так:
<?php
$col = ""; $row = ""; $page = ""; $t = ""; $u = "";
for ($i = 0; $i < 3; $i++) // Страницы
{
$page = '<table border="1">' . $page;
for ($j = 0; $j < 4; $j++) // Строки
{
$row = "<tr>" . $row;
for ($k = 0; $k < 2; $k++) // Столбцы
{
$col = "<td>" . $col; $u++;
$col = $col . "№$u"; if ($u == 17) $i = $j = $k = 1000;
$col = $col . "</td>";
$row .= $col; $col = "";
}
$row = $row . "</tr>";
$page .= $row; $row = "";
}
$page = $page . "</table><br>";
$t .= $page; $page = "";
}
echo $t;
?>
|
То есть всем счетчикам циклов присваиваю значения, при которых эти циклы выполняться не будут.
Есть ли лучшее решение? И можно ли как-нибудь усовешенствовать код (не используя столько вложенных циклов)? | |
|
|
|
|
|
|
|
для: IceGhost
(26.04.2010 в 01:00)
| | break
[поправлено модератором] | |
|
|
|
|
|
|
|
для: neadekvat
(26.04.2010 в 07:50)
| |
Про break не слышали? о.О
|
Слышал. Но для того, чтобы остановить все циклы, этот самый break вместе с условием надо поместить в каждый цикл, что плохо. | |
|
|
|
|
|
|
|
для: IceGhost
(26.04.2010 в 10:52)
| | Итак, вариант с кучей for я переделал. Теперь код содержит один for, два if и два ?. Работает корректно.
Выкладывать код пока не буду, ибо очень хочу взглянуть на вариант товарища Usta, который обещал его предоставить. Сразу скажу, что на БД можно забить и выводить просто номера (так делают коды, которые я предоставил в первом сообщении темы). | |
|
|
|
|
|
|
|
для: IceGhost
(26.04.2010 в 10:52)
| | У break есть опциональный параметр. Прочитайте о нём в документации. | |
|
|
|
|
|
|
|
для: Саня
(26.04.2010 в 13:45)
| | Не знал, учту. | |
|
|
|