在Foreach循环中,如何定位循环中的最后一项?

时间:2011-07-28 作者:Rob

我有以下代码来执行foreach循环,我想以循环中的最后一个项目为目标(例如,如果它在3个事件上循环,我想以第3个事件为目标),以与css略有不同。我该怎么做?

<?php $pages = get_pages(array(\'child_of\' => $post->ID, \'sort_column\' => \'menu_order\'));
    foreach($pages as $post)
    {
    setup_postdata($post);
    $fields = get_fields();
?>
<div class="event">
    <img class="event-thumbimage" src="<?php echo $fields->thumb_image; ?>" height="120" width="140" alt="<?php echo $fields->event_title; ?>" />
    <h2><?php echo $fields->event_title; ?></h2>
    <p>
        Location: <?php echo $fields->location; ?><br />
        Start: <?php echo $fields->start_date; ?> at <?php echo $fields->start_time; ?>
        <?php $fields = get_acf(); if($fields->end_date != "") : ?>
        , End: <?php echo $fields->end_date; ?> at <?php echo $fields->end_time; ?>
        <?php else : ?>
        <?php endif; ?>
    </p>                        
    <p style="margin-bottom:0px!IMPORTANT;"><?php echo substr($fields->description,0,170) . "..."; ?></p>
    <p><a class="read-more" href="<?php echo get_page_link($post->ID); ?>" title="Read more about: <?php echo $fields->event_title; ?>">Read more...</a></p>
</div>
<?php } wp_reset_query(); ?>

2 个回复
最合适的回答,由SO网友:mike23 整理而成

您可以尝试以下操作:

foreach( $pages as $key => $post )
以及:

<div class = "event <?php if( $key == ( count( $pages ) - 1 ) ) echo \'last\'; ?>" >
它将添加last 课程结束event 部门。

SO网友:Ashfame

自从$pages 是一个数组,通过$pages_count = count( $pages ); 然后在循环内部,保留一个计数器,该计数器在循环的每次迭代中递增,并比较它是否等于计数if ( $pages_count == $counter++ )

结束