$xml = simplexml_load_file($xmlPath); $items = $xml->list->item; ... echo $items[$currentIndex]->asXML();
Когда я распечатываю $ currentIndex на каждой итерации, я получаю 0, 1, 2, 3, 4 и т. Д. Когда я жестко кодирую $ items [0] -> asXML (); $ пунктов [1] -> asXML (); $ пунктов [2] -> asXML (); и т.д. Я получаю данные, которые я хочу.
Но когда я зацикливаюсь, как в первом сегменте кода, он печатает элементы 0, 2, 4 и т. Д.
Как это возможно и что может быть причиной этого?
Спасибо, Райан
ДОБАВЛЕННАЯ ИНФОРМАЦИЯ:
Это основная его часть:
$totalItems = 45; $keepItems = 10; $currentIndex = 0; while($totalItems > $keepItems) { $totalItems -= 1; print_r($xml->list->item[$currentIndex]); $currentIndex += 1; }
Я просто попробовал это в отдельном файле, и он работал в этом случае:
$xml = simplexml_load_file($xmlPath); $items = $xml->list->item; $counter = 45; $display = 0; while($counter > 4) { echo $items[$display]->asXML(); $display += 1; $counter -= 1; }
Так что в моем другом коде это происходит. Мне придется посмотреть на это еще немного, но, конечно, ничего очевидного.
Спасибо, Райан
ДОБАВЛЕННАЯ ИНФОРМАЦИЯ 2:
Хорошо, я определил строку кода, которая вызывает этот синдром «каждый другой» ðŸ™‚
unset($items[$currentIndex]);
Мысль заключалась в том, чтобы удалить / удалить элемент после использования данных, но, похоже, он не работает так, как я ожидал, – кто-нибудь имеет представление о том, почему? Почему он ничего не отображает?
Спасибо, Райан