I would like to reverse the order of this code's list items. Basically it's a set of years going from oldest to recent and I am trying to reverse that output.
<?php $j=1; foreach ( $skills_nav as $skill ) { $a = '<li><a href="#" data-filter=".'.$skill->slug.'">'; $a .= $skill->name; $a .= '</a></li>'; echo $a; echo "\n"; $j++; } ?>
An alternative way to iterate backwards in a list is to reverse the list with the List. Reverse() method and iterate over the reversed list using the foreach statement. Note that this approach is not recommended as it changes the original order of the list. That's all about iterating backwards in a List in C#.
Since there does not exist a "last" element, it is mathematically impossible to reverse the order.
If you're looking for a purely PHP solution, you can also simply count backwards through the list, access it front-to-back:
$accounts = Array( '@jonathansampson', '@f12devtools', '@ieanswers' ); $index = count($accounts); while($index) { echo sprintf("<li>%s</li>", $accounts[--$index]); }
The above sets $index
to the total number of elements, and then begins accessing them back-to-front, reducing the index value for the next iteration.
You could also leverage the array_reverse
function to invert the values of your array, allowing you to access them in reverse order:
$accounts = Array( '@jonathansampson', '@f12devtools', '@ieanswers' ); foreach ( array_reverse($accounts) as $account ) { echo sprintf("<li>%s</li>", $account); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With