PHP Foreach如果数组最后

Kri*_*ews 19 php arrays foreach if-statement

foreach( $tabs2 as $tab2 => $name ){
    $class = ( $tab2 == $current ) ? ' current' : '';
    echo("<li class='posts'><a href='?page=pigg&tab=help&tab2=$tab2' class='$class'>$name");
    echo(' |'); // If array last then do not display
    echo('</a></li>');
}
Run Code Online (Sandbox Code Playgroud)

我正在使用foreach循环为我正在处理的WordPress插件创建导航,但我不想要'|' 为了显示最后一个元素,上面的代码是我到目前为止所做的,我想在注释行上使用if语句,但不确定最好的方法是什么,任何想法?谢谢!

Yer*_*oon 63

end()功能是您所需要的:

if(end($tabs2) !== $name){
    echo ' |'; // not the last element
}
Run Code Online (Sandbox Code Playgroud)

  • @KristianMatthews,你差不多等了2年了.:) (22认同)
  • 稍微调整一下,我会在foreach循环之前在var中缓存end($ tabs2),这样每次都不会运行end函数. (5认同)
  • 如果我们在数组中得到两个相等的值,最后是1,另一个在中间,该怎么办?这不会是误导...... (4认同)