Ориентация на последний элемент в проблеме цикла foreach - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь нацелить последний элемент в цикле foreach, но это немного странно.

У меня есть два элемента в цикле, я попробовал следующее:

  1. Не установлен +/- для счетчика, это предназначается для первого элемента.
  2. Используя -1, поскольку счетчик также предназначается для первого элемента.
  3. Используя +1 какcount не предназначается ни для каких элементов, пока вы не добавите третий элемент, тогда он работает как задумано.

Вот код, кто-нибудь может помочь?

<?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 ]

1 голос
/ 28 июля 2011

Это способ сделать это:

<?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 голосов
/ 28 июля 2011

Когда вам нужно посчитать, цикл for или while может быть лучше, чем foreach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...