0

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" ;)?

1
  • where is $var coming from? and reverse starting from where? Commented May 19, 2011 at 18:15

2 Answers 2

4

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

Sign up to request clarification or add additional context in comments.

1 Comment

I was hoping this can be ommited.
2

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;
    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.