2014-12-31 3 views
0

Итак, я использую Smarty2 и не знаю Smarty. Попытка научиться этому, когда я пойду. У меня есть этот массив, структурировано, как это (от Var свалка)Как получить доступ к вложенному массиву в 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 Массив Массив Массив Массив SYP Массив Массив Массив Массив 4X8 Массив Массив Массив Массив Массив Массив Массив Массив Массив CCX Массив Массив Массив Массив SYP Массив Массив Массив Массив 4X8 Массив Массив Массив Массив Массив Массив Массив Массив Массив RSH 4-PLY Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array 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

Покажите, какой результат вы ожидаете. – J0e3gan

+0

Это должно быть что-то похожее на это # ​​2 S4S \t 2X6 SYP $ 679 \t $ 674 $ 669 \t $ 689 – trouble706

ответ

1

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

<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, а затем использовать клавиши массива для печати желаемых данных, а не повторять вслепую через массив.

+0

Это немного изменило отображение в браузере, но все еще не выполняет то, что мне нужно. Он по-прежнему отображает «Массив», а не показывает элементы массива. – trouble706

+0

Я отредактировал ответ тем временем. Вам нужно проверить, является ли элемент, который вы печатаете, массивом и повторите его, если это так. – pajaja

+0

Это сделало это за одним исключением. На этой строке (foreach key = price item = price from = $ item) мне пришлось изменить ключ = цена на ключ = ключ. Спасибо, что указал мне в правильном направлении. Я определенно считаю ваш ответ правильным. – trouble706

Смежные вопросы