Wordpress 针对foreach循环问题中的最后一项

Wordpress 针对foreach循环问题中的最后一项,wordpress,Wordpress,我试图将foreach循环中的最后一项作为目标,但它的行为有点奇怪 我在循环中有两项,我尝试了以下方法: 未为计数设置+/-,这将针对第一项 使用-1作为计数也针对第一项 使用+1作为计数不会以任何项目为目标,直到添加第三个项目 项目,则它将按预期工作 这是密码,有人能帮忙吗 <?php $pages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'menu_order')); foreach($p

我试图将foreach循环中的最后一项作为目标,但它的行为有点奇怪

我在循环中有两项,我尝试了以下方法:

  • 未为计数设置+/-,这将针对第一项
  • 使用-1作为计数也针对第一项
  • 使用+1作为计数不会以任何项目为目标,直到添加第三个项目 项目,则它将按预期工作
  • 这是密码,有人能帮忙吗

    <?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(); ?>
    
    
    
    这是一种方法:

    <?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(); ?>
    
    
    
    当你需要计数时,一个
    for
    while
    循环可能比
    foreach
    更好,我已经编辑了我的问题以使其更有意义!当使用-1时,它针对的是第一项而不是第二项。@Rob:能否在循环之前添加
    var\u dump($pages)
    ,并编辑您的问题以共享输出?如果数组的索引为0,则肯定需要从数组的计数中减去-1。