Wątek przeniesiony 2014-12-17 18:00 z PHP przez dzek69.

Wyświetlanie tablice wielowymiarowej

0

Witam,

Mam taki problem z wyświetlaniem pewnej tablicy w smarty.
Chodzi o tą tablice:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(7) "Silniki"
    ["parts"]=>
    array(10) {
      ["link"]=>
      string(17) "/cars/buy_parts/3"
      ["title"]=>
      string(14) "Kup ten silnik"
      ["typ"]=>
      string(4) "W-14"
      ["level"]=>
      int(0)
      ["price"]=>
      int(100000000)
      ["name"]=>
      string(10) "Wieśwagen"
      ["img"]=>
      string(42) "/files/templates/deflaut/images/engine.png"
      ["href"]=>
      int(0)
      ["typ2"]=>
      int(1)
      ["wear"]=>
      string(0) ""
    }
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(16) "Skrzynie biegów"
    ["parts"]=>
    NULL
  }
}

Teraz aby wyświetlić to wszystko z tej tablicy użyłem najpierw pierwszej pętelki i działa, ale żeby użyć tej tablicy co jest w ['parts'] to zrobiłem coś takiego:

{section name=j loop=$type[i]['parts']} 
 {$type[i]['parts'][j]['typ']}
restza kodu
{/section}

ale to nie działa i nie mam pomysłu jak to wyświetlić inaczej.
Co więcej szukałem trochę w google ale oprócz podstawowych funkcji nic nie znalazłem.

1

Tak samo jak w PHP:

{foreach $array as $element}
  {$element.name}
  {foreach $element.parts as $part}
    - {$part.name}
  {/foreach}
{/foreach}
0

Tylko coś to nie chcę działać. Jak wpisuje $part.href to wywala błąd:

<b>Warning</b>:  Illegal string offset 'href' in <b>E:\Projekty\files\templates_c\x\e292678f3d0634423f53f0e847b15eae3133b224.file.cars_parts.tpl.php</b> on line <b>57</b><br />

lub jak daje np. {$part.level}

to wyskakuje, że jest pusty, chociaż tam coś jest.

0

bo coś namieszałeś już wcześniej i $part jest stringiem, a nie tablicą

0

Dzięki za pomoc. Pominąłem o [] przy zmiennej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1