Reputation: 1005
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
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
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