我想颠倒此代码列表项的顺序。基本上,这是一组从最老到最近的年份,我正在尝试逆转这一输出。
<?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++;
}
?>
发布于 2012-05-28 06:04:06
向后走
如果你正在寻找一个纯粹的PHP解决方案,你也可以简单地在列表中倒数,从前到后访问它:
$accounts = Array(
'@jonathansampson',
'@f12devtools',
'@ieanswers'
);
$index = count($accounts);
while($index) {
echo sprintf("<li>%s</li>", $accounts[--$index]);
}
上面的代码将$index
设置为元素的总数,然后开始从后到前访问它们,从而减少下一次迭代的索引值。
反转数组
您还可以利用array_reverse
function来反转数组的值,从而允许您以相反的顺序访问它们:
$accounts = Array(
'@jonathansampson',
'@f12devtools',
'@ieanswers'
);
foreach ( array_reverse($accounts) as $account ) {
echo sprintf("<li>%s</li>", $account);
}
发布于 2012-05-28 06:05:48
或者您可以使用array_reverse函数。
发布于 2015-11-01 02:25:06
array_reverse()
不会改变源数组,但会返回一个新数组。(请参阅array_reverse()
。)因此,您要么需要首先存储新数组,要么只需在for循环的声明中使用function。
<?php
$input = array('a', 'b', 'c');
foreach (array_reverse($input) as $value) {
echo $value."\n";
}
?>
输出将为:
c
b
a
因此,要寻址到OP,代码变成:
<?php
$j=1;
foreach ( array_reverse($skills_nav) as $skill ) {
$a = '<li><a href="#" data-filter=".'.$skill->slug.'">';
$a .= $skill->name;
$a .= '</a></li>';
echo $a;
echo "\n";
$j++;
}
最后,我将猜测$j
要么是最初尝试获取$skills_nav
反向遍历时使用的计数器,要么是计算$skills_nav
数组的一种方法。如果是前者,现在应该删除它,因为您有了正确的解决方案。如果是后者,则可以在循环外部将其替换为$j = count($skills_nav)
。
https://stackoverflow.com/questions/10777597
复制相似问题