числа печати php в форме, использующей меньше чем 2 для петель - PullRequest
0 голосов
/ 04 ноября 2011
<table>
<tr
<td align="center">
<?PHP

$b = 1;
for ($a=1; $a<=1; $a++)
{
    echo $b++;
    echo "<br>";
}

$b = 2;
for ($a=1; $a<=2; $a++)
{
    echo $b++;

}

echo "<br>";
$b = 4;
for ($a=1; $a<=3; $a++)
{
    echo $b++;

 }
echo "<br>";
$b = 7;
for ($a=1; $a<=5; $a++)
{
    echo $b++;

{
echo "<br>";
$b = 12;
for ($a=1; $a<=5; $a++)
{
    echo $b++;

}
echo "<br>";
$b = 17;
for ($a=1; $a<=4; $a++)
 {
     echo $b++;

}
echo "<br>";
$b = 21;
for ($a=1; $a<=3; $a++)
{
    echo $b++;

}
echo "<br>";
$b = 24;
for ($a=1; $a<=2; $a++)
{
    echo $b++;

}
echo "<br>";
$b = 26;
for ($a=1; $a<=1; $a++)
{
    echo $b++;

 }

 ?>
 </td>
 </tr>
 </table>

Я пытаюсь использовать циклы для создания фигуры, которая выглядит примерно так:

Мне удалось это сделать, но, используя слишком много циклов (9), я хочу быть немного меньше этого. Кто-нибудь может помочь?

P.S означает ромб с цифрами 1-26

.
   ![sort of like this][1]     

Ответы [ 3 ]

0 голосов
/ 04 ноября 2011

Как насчет:

$arr = array(1,2,4,7,12,17,21,24,26,27);
for($i=1; $i<count($arr); $i++) {
    for($j=$arr[$i-1]; $j<$arr[$i]; $j++) {
      echo $j;
    }
    echo "<br>";
}
0 голосов
/ 04 ноября 2011

Примерно так должно работать:

$rowsUntilMiddle = 5;
$startnumber = 1;

$totalrows = $rowsUntilMiddle*2-1;
$i = $startnumber;
$numInRow = 0;
// each row
for ($row=1; $row<=$totalrows; $row++) {
    if ($row <= $rowsUntilMiddle) {
        $numInRow++;
    } else {
        $numInRow--;
    }
    // each number
    for($j=0; $j<$numInRow; $j++) {
        echo $i;
        $i++;
    }
    echo '<br />';
}
0 голосов
/ 04 ноября 2011

Примерно так, просто чтобы дать представление:

$i = 0;
$leaps = array(1,2,4,7,12,17,21,24,26);
foreach($leaps as $leap){
    for($j = 1; $j<=$i; $j++){
       echo $leap++;
    }
    $i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...