@arsenaljek

Обьясните, почему Warning: Illegal string offset 'name' когда остается 1 элемент в массиве?

Есть xml
<?xml version="1.0" encoding="utf-8"?>
<test_coupons>
	<coupons>
		<coupon id="185106">
			<name>Бесплатная доставка и подъем!</name>
		</coupon>
	</coupons>
</test_coupons>

Вывожу я так
foreach ($data['coupons']['coupon'] as $mv_coupons) {
<h6><?=$mv_coupons['name']?></h6>
}

И выходит ошибка Warning: Illegal string offset 'name' in
Но, если добавить в xml более одного купона т.е так
<?xml version="1.0" encoding="utf-8"?>
<test_coupons>
	<coupons>
		<coupon id="185106">
			<name>Бесплатная доставка и подъем! 1</name>
		</coupon>
		<coupon id="185106">
			<name>Бесплатная доставка и подъем! 2</name>
		</coupon>
	</coupons>
</test_coupons>

То всё выводиться отлично. Подскажите, как это пофиксить?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Сделайте var_dump обоих массивов и увидите разницу. Php разбирает xml в разные структуры, в зависимости от количества детей, поэтому нужно добавлять проверки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы