McRonald
McRonald

Reputation: 1005

PHP: foreach - reverse 1 iteration

Let's say I've a code:

foreach($array as $key => $value)
{
    //do something
    if($var === true) //"reverse"
}

is it possible to "reverse" foreach, so it'll "run" with the same array's element it was "running" when called to "get back" ;)?

Upvotes: 0

Views: 1039

Answers (2)

Dereleased
Dereleased

Reputation: 10087

Not with a foreach, no. You could do this:

$array = range(1,10);

for (
    $dir = 1, reset($array); 
    $val = current($array); // for keys, use list($key,$val) = each($array)
    $dir == 1 ? next($array) : prev($array)
) {
    echo "{$val}\n";
    if ($val == 7) {
        $dir = -1;
    }
}

Upvotes: 2

Mr47
Mr47

Reputation: 2655

You will have to use a normal for loop and make the last parameter (the modifying part) depend on a variable.

Expr3 in the following manual entry: http://php.net/manual/en/control-structures.for.php

Upvotes: 4

Related Questions