我正在尝试定位foreach循环中的最后一项,但它的行为有点奇怪。
我在循环中有两个项目,我尝试了以下内容:
这是代码,任何人都可以帮忙吗?
<?php $pages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'menu_order'));
foreach($pages as $key => $post)
{
setup_postdata($post);
$fields = get_fields();
?>
<div class="event<?php if( $key == (count( $pages ) +1) ) echo 'last'; ?>">
</div>
<?php } wp_reset_query(); ?>
答案 0 :(得分:1)
这是做到这一点的方法:
<?php
$pages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'menu_order'));
// keep a record of the number of pages -1
// in order to compare against 0 indexed array key
$pagesNo = count($pages)-1;
foreach($pages as $key => $post)
{
setup_postdata($post);
$fields = get_fields();
?>
<div class="event<?php if( $key == $pagesNo ) echo 'last'; ?>"></div>
<?php } wp_reset_query(); ?>
答案 1 :(得分:0)
当您需要计算时,for
或while
循环可能优于foreach
。