2011-07-28 55 views
0

我努力的目標在foreach循環的最後一個項目,但它的作用有點怪怪的最後一個項目。定位在foreach循環問題

我得到了在環兩個項目,我已經試過如下:

  1. 沒有設置爲+/-計數,這個目標的第一個項目。
  2. 使用-1作爲計數還針對第一項。
  3. 使用+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(); ?> 

回答

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

我已經編輯我的問題作出更有意義!使用-1時,它定位第一個項目而不是第二個項目。 – Rob

+0

@Rob:你可以在循環前添加一個'var_dump($ pages)'並編輯你的問題來共享輸出嗎?如果該數組爲0索引,則您肯定需要從數組數減去-1。 – Shef

+1

第一次工作很好,謝謝。 – Rob

0

當你需要來算,一個forwhile循環可能是一個更好的比foreach