En un bucle foreach, ¿cómo identifico el último elemento del bucle?
Tengo el siguiente código para hacer un bucle foreach, quiero identificar el último elemento del bucle (por ejemplo, si se recorren 3 eventos, quiero identificar el tercer evento) para hacer algo ligeramente diferente con el CSS. ¿Cómo podría hacerlo?
<?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>
Ubicación: <?php echo $fields->location; ?><br />
Inicio: <?php echo $fields->start_date; ?> a las <?php echo $fields->start_time; ?>
<?php $fields = get_acf(); if($fields->end_date != "") : ?>
, Fin: <?php echo $fields->end_date; ?> a las <?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="Leer más sobre: <?php echo $fields->event_title; ?>">Leer más...</a></p>
</div>
<?php } wp_reset_query(); ?>
Gracias, curiosamente ha añadido la última clase al segundo elemento en lugar del tercero (es decir, al último elemento).

Ah sí, eso es porque $key comienza en cero, no en uno. He corregido el código. Dime si funciona ahora.

debería ser if( $key == (count( $pages ) -1) )
ya que el primer índice del array es 0 mientras que la función count comienza desde 1.

@Bainternet ¡Gracias! Sabía qué hacer pero no conseguía la sintaxis correcta.

@Bainternet Está comportándose un poco raro. Usando -1 como contador, hace que el primer elemento sea el "último". Cuando lo cambio a +1, no funciona cuando solo hay dos elementos en la lista pero sí funciona cuando hay 3, ¡argh!
