Smarty: снова вложенные sections

zahhar

двинутый новичок
Smarty: снова вложенные sections

В форуме уже есть такой топик, сделал всё точно как в нём советуют, но всё равно не работает. Объясните, что я делаю не так?

Имеем массив {$data} (копирую из дебаг-окна смарти):
PHP:
{$data} Array (3)
0 => Array (3)
  counter_id => 2
  caption => Name1
  list => Array (2)
    0 => Array (2)
      counter_id => 8
      caption => Name2
    1 => Array (2)
      counter_id => 9
      caption => Name3
   1 => Array (3)
  counter_id => 3
  caption => Name4
  list => Array (1)
    0 => Array (2)
      counter_id => 10
      caption => Name5
2 => Array (3)
  counter_id => 1
  caption => Name6
  list => Array (4)
    0 => Array (2)
      counter_id => 4
      caption => Name7
    1 => Array (2)
      counter_id => 6
      caption => Name8
    2 => Array (2)
      counter_id => 5
      caption => Name9
    3 => Array (2)
      counter_id => 7
      caption => Name10
И имеем такой шаблон:
PHP:
{section name=counter_groups loop=$data}
$data[counter_groups].caption}
{section name=counter_list loop=$data[counter_groups].list}
bla<br />
{$data[counter_groups][counter_list].caption}
{/section}
{/section}
При выполнение кол-во bla правильное - 4, 2 и 1 - т.е. по кол-ву элементов вложенного массива. А вот значение не выводится. Смарти никак не ругаетно, но php пишет Notice: Undefined offset: 0

Где грабли?
Заранее благодарен.
 

zahhar

двинутый новичок
Спасибо, попробую переделать на фор-ич.
А в чём принципиальная разница между этими структурами? Ман как-то туманно излагает. В каком случае что хорошо использовать?

Update: с foreach всё заработало с пол-пинка. Благодарю. Но для чего тогда sections?
 

Demiurg

Guest
foreach удобен для прохождению по массиву, по аналогии с php. А section это как for в php, то есть когда нужно задать некую цифровую последовательность.
 

Mammoth

Guest
Re: Smarty: снова вложенные sections

Может быть надо было писать {$data[counter_groups].list[counter_list].caption}, а не {$data[counter_groups][counter_list].caption}?
 
Сверху