Как вы получаете доступ к вложенному массиву в Smarty?

Итак, я использую Smarty2 и не знаю Smarty. Пытаюсь научиться этому по ходу дела.
У меня есть этот массив, который структурирован так (из дампа Вар)

array(59) {
[0]=> array(4) {
[0]=> string(10) "CCX 4PLY"[1]=> string(3) "SYP"[2]=> string(4) "4X8 "[3]=> array(6) {
[0]=> string(0) ""[1]=> string(0) ""[2]=> string(0) ""[3]=> int(761)
[4]=> string(0) ""[5]=> string(0) ""}
}
[1]=> array(4) {
[0]=> string(5) " CCX"[1]=> string(3) "SYP"[2]=> string(4) "4X8 "[3]=> array(6) {
[0]=> string(0) ""[1]=> string(0) ""[2]=> string(0) ""[3]=> string(0) ""[4]=> int(823)
[5]=> int(937)
}
}
...
}

Массив намного длиннее, но этого должно быть достаточно, чтобы дать вам представление о том, что я собираюсь сделать. Как вы можете видеть, внутри каждого массива есть еще один массив, в котором указаны цены товара. Иногда цены нет, но это нормально. Там не должно быть в тех случаях.
Итак, что мне нужно сделать, это показать цены, поскольку они соответствуют конкретной позиции. Вот мой код в Smarty.

<table>
{foreach name=outer item=row from=$indLine}
<tr>
{foreach key=key item=item from=$row}
<td>{$item}</td>
{foreach key=price item=price from=$row}
<td>{$indLine[4]}</td>
{/foreach}
{/foreach}
</tr>
{/foreach}

Моя умная переменная для массива — indLine. В indLine [4] я пытаюсь получить доступ к этим ценам. Я пытался изменить это, чтобы грести и т.д. Ничего не работает. В браузере отображается следующее.

CCX 4PLY Array Array Array Array Массив SYP Array Array Array Массив 4X8 Array Array Array Массив Массив Массив Массив Массив Массив Массив
CCX Array Array Array Array Массив SYP Array Array Массив 4X8 Массив Массив Массив Массив Массив Массив Массив Массив Массив
RSH 4-PLY Array Array Array Array Массив SYP Array Array Array Массив 4X8 Array Array Array Массив Массив Массив Массив Массив Массив Массив
Массив RSH Массив Массив Массив SYP Массив Массив Массив 4X8 Массив Массив Массив Массив Массив Массив Массив Массив
S / F 4-PLY Array Array Array Array Массив SYP Array Array Array Массив 4X8 Array Array Array Массив Массив Массив Массив Массив Массив
S / F SE Array Array Array Массив SYP Array Array Массив Array 4X8 Array Array Массив Массив Массив Массив Массив Массив Массив Массив

CCX 4PLY    0   SYP 0   4X8 0   Array   0
CCX 0   SYP 0   4X8 0   Array   0
RSH 4-PLY   0   SYP 0   4X8 0   Array   0
RSH 0   SYP 0   4X8 0   Array   0
S/F 4-PLY   0   SYP 0   4X8 0   Array   0
S/F SE  0   SYP 0   4X8 0   Array   0
RSH 3-PLY   0   SYP 0   4X8 0   Array   0
RSH 4-PLY   0   SYP 0   4X8 0   Array   0
RSH 0   SYP 0   4X8 0   Array   0
S/F 4-PLY   0   SYP 0   4X8 0   Array   0

0

Решение

Я не уверен, что представляет собой каждое значение / массив и какой вывод вы ожидаете, но попробуйте это:

<table>
{foreach name=outer item=row from=$indLine}
<tr>
{foreach key=key item=item from=$row}
{if is_array($item)}
{foreach key=key item=price from=$item}
<td>{$price}</td>
{/foreach}
{else}
<td>{$item}</td>
{/endif}
{/foreach}
</tr>
{/foreach}

Когда вы находитесь в цикле foreach, вы используете переменную, определенную как item, Я предлагаю вам построить массив Assocc в php, а затем использовать ключи массива для печати нужных вам данных, а не проходить вслепую по массиву.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]