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…