Intereting Posts
Регулярное выражение для содержимого внутри <td> и </ td> Измените переменную php, замените белые пробелы пунктиром Как изменить текущую дату календаря сервера на другую дату календаря в php? Использование LIMIT в MySQL для ограничения результатов на основе значения столбца (PHP / MySQL) Использование swiftmailer и отправка вложений Как отсортировать значения NULL в последний раз, используя Eloquent в Laravel Разница между веб-сервером и контейнером сервлетов Как безопасно поддерживать аутентификацию пользователя через сторонний API? Как установить карту изображения в части фонового изображения? Распаковать папку для распаковки файлов Zend 1.12: добавьте javascript в нижней части окна Обычные ценовые правила Magento для продукта Регулярное выражение PHP с кавычками truncate string, но удалите середину строки вместо конца Laravel, получите последний идентификатор вставки, используя Eloquent

Доступ к узлу XML напрямую с помощью ключа

$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]); 

Мысль заключалась в том, чтобы удалить / удалить элемент после использования данных, но, похоже, он не работает так, как я ожидал, – кто-нибудь имеет представление о том, почему? Почему он ничего не отображает?

Спасибо, Райан