Reputation: 577
I want to echo a variable at the last iteration of a foreach
loop, only counting when a conditional is met inside a loop.
I realize I could echo $var
outside the foreach
statement, but I'd really like to figure out a way to do this within the foreach
statement. This a crude example where that makes total sense, but what I really want to do is figure out the last iteration within the foreach
statement.
Here is what I have tried:
$var = "end";
foreach ($options as $option => $icon) {
if (strpos($check[0], $option) !== false) {
echo $icon;
}
if (end($options)){
echo $var;
}
}
I have also tried setting up a counter when $icon
exists but nothing has worked correctly, because the total count is unknown.
How do I do this?
Upvotes: 0
Views: 68
Reputation: 79024
If the array is not empty, end
will always return the last element regardless of what element the array pointer is pointing to.
I don't see a valid reason for doing this, but you can just see if there is NOT a next
element. foreach
will advance the array pointer each iteration, so next
will attempt to fetch the next one, and if it is on the last element it will fail:
$var = "end";
foreach ($options as $option => $icon) {
if (strpos($check[0], $option) !== false) {
echo $icon;
}
if (!next($options)){
echo $var;
}
}
Upvotes: 1