定位foreach循环问题中的最后一项

时间:2011-07-28 15:58:36

标签: wordpress

我正在尝试定位foreach循环中的最后一项,但它的行为有点奇怪。

我在循环中有两个项目,我尝试了以下内容:

  1. 未为计数设置+/-,这是第一项目。
  2. 使用-1作为计数也会定位第一项。
  3. 在添加第3项之前,使用+1作为计数不会定位任何项目 item,然后按预期工作。
  4. 这是代码,任何人都可以帮忙吗?

    <?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(); ?>
    

2 个答案:

答案 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)

当您需要计算时,forwhile循环可能优于foreach