In primo e l'ultimo elemento in lista utilizzando RecursiveIteratorIterator
-
13-10-2019 - |
Domanda
sto usando RecursiveIteratorIterator
al ciclo su Zend_Navigation
, che è fondamentalmente un elenco di annidate <ul>
e <li>
tag:
$iterator = new RecursiveIteratorIterator(
$container,
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $page) {
...
// isLast()?
// isFirst()?
}
Come determinare, se l'elemento attualmente iterato ($page
) è il primo o l'ultimo elemento sul livello attuale?
Ho bisogno di aggiungere l'attributo first
e la classe last
a quegli elementi.
Soluzione
Si potrebbe usare getDepth () alla query profondità del etichetta. Quando la profondità aumenta, siete ad un nuovo livello e dovrebbe aggiungere un attributo first
. Quando la profondità diminuisce tra i tag, che ti dice il tag precedente era l'ultima del suo livello e si dovrebbe aggiungere un attributo last
ad esso. Questo significa che si dovrà leggere il tag successivo prima di poter completare l'elaborazione del tag corrente.