Первые и последние элементы в списке с использованием рекурсивноститераторатора

StackOverflow https://stackoverflow.com/questions/4540353

Вопрос

я использую RecursiveIteratorIterator чтобы перевернуть Zend_Navigation, который в основном является списком вложенных <ul> а также <li> Теги:

$iterator = new RecursiveIteratorIterator(
    $container, 
    RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $page) {
    ...
    // isLast()?
    // isFirst()?
}

Как определить, является ли в настоящее время итерационный элемент ($page) является первым или последним элементом на уровне тока?
Мне нужно добавить first а также last Атрибут класса к этим элементам.

Это было полезно?

Решение

Вы могли бы использовать getDepth () Чтобы запросить глубину тега. Когда глубина увеличивается, вы на новом уровне и должны добавить first атрибут. Когда глубина уменьшается между метками, это говорит вам, что предыдущий тег был последним на его уровне, и вы должны добавить last атрибут к этому. Это означает, что вам придется прочитать следующий тег, прежде чем вы сможете закончить обработку тега.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top