Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to count inverse with for in php?

My Problem: I want to count inverse in the for loop.

This is the opposite of what I want to do:

for($i=1;$i<=10;$i++){
    echo $i;
}

If I put $i-- doesn't works (my server crashes).

Help meeee!

Best Regards, Adam

like image 478
Adam Halasz Avatar asked Jul 02 '10 16:07

Adam Halasz


4 Answers

When you say $i-- crashes your server, did you change the initialization and condition for $i?

for($i=10; $i>=1; $i--){
    echo $i;
}
like image 147
thetaiko Avatar answered Nov 17 '22 07:11

thetaiko


If you take the for as you wrote and just replace $i++ with $i--, the value of $i will be decremented with every iteration (1, 0, -1, -2, etc.) and the looping condition $i<=10 is always true.

If you want to count backwards, you also need to change the other parts (initialization and looping condition):

for ($i=10; $i>=1; $i--){
    echo $i;
}

Or you take the last and subtract the current value from it and add the first value to it:

for ($first=1, $i=$first, $last=10; $i<=$last; $i++){
    echo $last - $i + $first;
}
like image 10
Gumbo Avatar answered Nov 17 '22 05:11

Gumbo


I don't get it, just doing

for($i=10;$i>=1;$i--){
    echo $i;
}

is not enough?

like image 4
Jack Avatar answered Nov 17 '22 06:11

Jack


from the PHP manual

for (expr1; expr2; expr3) statement

The first expression (expr1) is evaluated (executed) once unconditionally at the beginning of the loop.

In the beginning of each iteration, expr2 is evaluated. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends.

At the end of each iteration, expr3 is evaluated (executed).

like image 1
just somebody Avatar answered Nov 17 '22 07:11

just somebody