Smarty und der dynamische Zugriff auf Arrays

Innerhalb einer Smarty {section} muss auf ein Array zugegriffen werden, allerdings mit dem Array-Index eines anderen Arrays. Abhängig von der Position der {section} kommt also immer ein anderer index.

Beispiel:

{section name=”num” loop=$data1}
  {$data1[num].ID}
{/section}

In {$data[num].ID} steht der Index des Arrays “data2”, auf den ich zugreifen möchte.

Allerdings, so ein Konstrukt funktioniert dann nicht:

{section name=”num” loop=$data1}
  {$data2.daten[$data1[num].ID]}
{/section}

{$data2.daten} ist wiederrum ein array und dort stehen dann die Daten drin. Leider funktioniert diese Methode nicht.

Nach kurzem und scharfen Nachdenken kam ich dann drauf, man setzt eine temporäre Smarty-Variable, abhängig vom Wert der {section} und das geht mit {assign}:

{section name=”num” loop=$data1}
{assign var=”meineID” value=$data1[num].ID}
  {$data2.daten[$meineID]}
{/section}

Gut zu wissen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.