Первые и последние элементы в списке с использованием рекурсивноститераторатора
-
13-10-2019 - |
Вопрос
я использую RecursiveIteratorIterator
чтобы перевернуть Zend_Navigation
, который в основном является списком вложенных <ul>
а также <li>
Теги:
$iterator = new RecursiveIteratorIterator(
$container,
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $page) {
...
// isLast()?
// isFirst()?
}
Как определить, является ли в настоящее время итерационный элемент ($page
) является первым или последним элементом на уровне тока?
Мне нужно добавить first
а также last
Атрибут класса к этим элементам.
Решение
Вы могли бы использовать getDepth () Чтобы запросить глубину тега. Когда глубина увеличивается, вы на новом уровне и должны добавить first
атрибут. Когда глубина уменьшается между метками, это говорит вам, что предыдущий тег был последним на его уровне, и вы должны добавить last
атрибут к этому. Это означает, что вам придется прочитать следующий тег, прежде чем вы сможете закончить обработку тега.