Smarty: Arrayzugriff mithilfe von Variablen?

mille

Erfahrenes Mitglied
Hallo!

Ich möchte auf ein Array in Smarty zugreifen.
Soweit ja kein Problem. Aber die Indizes sind keine konstante namen, sondern Variablen.

Beispiel

PHP hat folgende Variable:
PHP:
echo $array["schluessel"]; // gibt "wert" aus.

Nun möchte ich in Smarty drauf zugreifen, so wie man es in php machen würde:
PHP wäre die lösung einfach:
PHP:
$key = "schluessel";
echo $array[$key]; // gibt auch wert aus

in Smarty hab ich mir gedacht, könnte also gehen
{$array.$key}
Aber nichts da. Das geht nicht.

Insofern meine Frage: Ist es in Smarty möglich ein Array mit Hilfe von Variablen auszulese, die hierbei als Schlüssel dienen? Ich hoffe doch stark, da meine komplette Datenbankstruktur darauf aufbaut. Und eine eigene Erweiterung möchte ich ja nun nicht schreiben ;).

MfG
mille


// edit:
bei meiner Variante sagt smarty foglendes
<br />
<b>Warning</b>: Illegal offset type in <b>C:\wwwroot\smarty\template_c\%%101\%%1010962657\addProduct.tpl.php</b> on line <b>63</b><br />
 
Zuletzt bearbeitet:
Hallo,

laut Doku wäre {$array.$key} schon der richtige Weg. Die Fehlermeldung besagt, dass $key nicht als Arrayindex verwendet werden kann. Stelle sicher, dass es sich um einen String oder Integer handelt.

Grüße,
Matthias
 
Nun, gut, das hat man davon, das man das Problem versucht zu vereinfachen.
Danke schonmal Matthias.
Allerdings besteht bei mir die Variable $merkmal auch auseinem array.

So sieht das $key-Array aus:
[0] => ["column_0"] => "spalte", ["anzeige"] => "ich bin ein anzeige text"
[1] => ["column_1"] => "spalte", ["anzeige"] => "ich bin ein anzeige text"
...
[n] => ["column_n"] => "spalte", ["anzeige"] => "ich bin ein anzeige text"

Im Template lasse ich dann das $key array per {foreach} durchlaufen. so das im endeffekt eine variable $key drüberbleibt, die immer noch einen key darstellt.
Also möchte ich, um genau zu sein, in smarty das Realisieren, was in PHP so aussieht:
PHP:
 echo $array[$key["coloumn"]]; // gibt column_1, column_2 usw. aus, je nach dem welcher durchlauf gerade dran ist

In smarty hab ich foglendes versucht:
{$array.$key.column}.
Da kommt der besagte Fehler.
Weisst du auch da Rat, Matthias? Oder wer anders? :)

MfG
mille

PS: eine weitere foreach würde ich gerne vermeiden, da der wert in column ja immer anders ist und es nich unbedingt einfach wäre, den dann von den anderen Indizes zu unterscheiden :).
 
Zurück