Page 1 of 1

help with for loop

Posted: Fri Nov 04, 2011 8:18 am
by mayman212

Code: Select all

<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>
Hi all
I am trying to use for loops to make a shape that looks something along the lines of this:
1
23
456
7891011
1213141516
17181920
212223
2425
26

I have managed to do it, but using way too many loops (9), I want to be a little less than this. Anyone have any help?

Re: help with for loop

Posted: Fri Nov 04, 2011 9:07 am
by icesolid
Here is a start to a cleaner solution:

Code: Select all

<?php
for($a = 1; $a <= 26; $a++)  {
    echo $a;
    
    if($a == 1) {
        echo '<br />';
    } elseif($a == 3) {
        echo '<br />';
    } elseif($a == 6) {
        echo '<br />';
    } elseif($a == 11) {
        echo '<br />';
    } elseif($a == 16) {
        echo '<br />';
    } elseif($a == 20) {
        echo '<br />';
    } elseif($a == 23) {
        echo '<br />';
    } elseif($a == 25) {
        echo '<br />';
    }  
}
?>

Re: help with for loop

Posted: Fri Nov 04, 2011 10:11 am
by Richardw
icesolid wrote:Here is a start to a cleaner solution:

Code: Select all

for($a = 1; $a <= 26; $a++)  {
    echo $a;
    
    if($a == 1) {
        echo '<br />';
    } elseif($a == 3) {
        echo '<br />';
    } elseif($a == 6) {
        echo '<br />';
    } elseif($a == 11) {
        echo '<br />';
    } elseif($a == 16) {
        echo '<br />';
    } elseif($a == 20) {
        echo '<br />';
    } elseif($a == 23) {
        echo '<br />';
    } elseif($a == 25) {
        echo '<br />';
    }  
}
How about this...

Code: Select all

for($a=1; $a<27; $a++){
	echo $a;
	if (in_array($a, array(1,3,6,11,16,20,23,25))){
		echo '<br />';
	}
}
8)

Re: help with for loop

Posted: Fri Nov 04, 2011 10:15 am
by icesolid
Yeah, @Richardw much better, in_array() slipped my mind - IT'S FRIDAY!