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>');
}
我正在使用foreach循环为我正在处理的WordPress插件创建导航,但我不想要&#39; |&#39;要显示最后一个元素,上面的代码是我到目前为止所做的,我想在注释行上使用if语句,但不确定最好的方法是什么,任何想法?谢谢!
答案 0 :(得分:63)
end()
功能是您所需要的:
if(end($tabs2) !== $name){
echo ' |'; // not the last element
}
答案 1 :(得分:1)
我发现首先检查更容易,而不是最后检查。所以我会这样做。
$first = true;
foreach( $tabs2 as $tab2 => $name ){
if ($first) {
$first = false;
} else {
echo(' | ');
}
$class = ( $tab2 == $current ) ? ' current' : '';
echo("<li class='posts'><a href='?page=pigg&tab=help&tab2=$tab2' class='$class'>$name</a></li>");
}
我还将最后两个echos
合并在一起。
答案 2 :(得分:1)
首先,您需要找出数组的最后一个键,并使用 count()函数找到数组长度。<登记/>
后来我们要创建一个计数器并在每个循环上添加+1。
如果计数器和最后一个键相等,则它是最后一个键。
$last = count($array); $counter = 1; foreach ($array as $key => $val){ if ($counter != $last){ // all keys but the last one // do something $counter++; // add one to counter count } else { // this is for the last key }// end else }// end foreach
答案 3 :(得分:1)
我会这样做:
$arrLi = array();
foreach( $tabs2 as $tab2 => $name ){
$class = ( $tab2 == $current ) ? ' current' : '';
$arrLi[] = "<li class='posts'><a href='?page=pigg&tab=help&tab2=$tab2' class='$class'>$name</a></li>";
}
echo implode('|', $arrLi);
答案 4 :(得分:1)
end()是一个很好的使用功能
foreach( $tabs2 as $tab2 => $name ){
if(end($tabs2)== $name)
echo "|";
}
或者您可以手动执行此操作以获得更多理解
$copyofarry = $tabs2;
$last = array_pop($copyofarry);
foreach( $tabs2 as $tab2 => $name ){
if($last == $name)
echo "|";
}
答案 5 :(得分:0)
这样的事情是可能的:
$size = count($tabs2);
$counter = 0;
foreach( $tabs2 as $tab2 => $name ){
$class = ( $tab2 == $current ) ? ' current' : '';
echo("<li class='posts'><a href='?page=pigg&tab=help&tab2=$tab2' class='$class'>$name");
if ( ++$counter < $size ){
echo(' |'); // If array last then do not display
}
echo('</a></li>');
}
答案 6 :(得分:0)
为什么不先弹出最后一个元素?因此,您无需检查当前元素是否是每次迭代中的最后一个元素。
函数array_pop(&amp; $ array)返回最后一个元素并将其从数组中删除。
<div id="breadcrumb">
<?php
$lastBreadcrumb = array_pop($breadcrumb);
foreach ($breadcrumb as $crumb){ ?>
<a href=""><?php echo $crumb; ?></a>
<?php } ?><span><?php echo $lastBreadcrumb?></span>
</div>