Antworten auf deine Fragen:
Neues Thema erstellen

Multidimensionales Array mit Smarty auslesen

ezekiel23

Nicht mehr ganz neu hier

Hallo,
ich habe folgendes Problem. Ich möchte mir ein in PHP erstelltes Array, welches an Smarty übergeben wird, mit Smarty auslesen lassen. Die "keys" des Arrays werden aus ner DB erstellt und sind somit nicht "fest", sondern können stets verschieden sein. Leider komme ich nicht an meinen Wert, hier mal ein Beispiel:

array
array(2) {[8] => array(1) { ["AufgabeSoundso"] => array(2) { ["Dauer"] => int(2)
["ID"] => string(7) "43546As"} ... }
Dier hier fettgedruckten Begriffe sind Variablen dich unterschiedlich sein können und werden mit Hilfe von for-each-Schleifen und arrays ausgelesen.

Um mit Smarty bei multidimensionalen Arrays in die Tiefen zu gehen, geht man so vor:
$meinArray.Ebene1.Ebene2.LetzteEbene
Also so sollte Smarty bei mir aussehen:

$meinArray.8.AufgabeSoundso.Dauer
und ich erhalte den Wert 2.

Mein Problem ist das ich die Dimensionen so nicht ansprechen kann da diese aus for-each Schleifen erzeugt werden. So geht es leider nicht:

$meinArray.$dieIDs.$dieAufgabe.Dauer
Ich hoffe ich konnte mein Problem einigermaßen erklären. Ansonsten bitte nochmal melden.
Hat jemand dafür eine Lösung? Hab schon einiges probiert und bin im Internet nicht fündig geworden.

Grüße
 

ezekiel23

Nicht mehr ganz neu hier

AW: Multidimensionales Array mit Smarty auslesen

mmh danke für deine Antwort r3nt5ch3r, nur wo steckt da die Lösung? :)

{$foo.$bar} <-- Zeigt das Element eines variablen Schlüssels an (wie PHPs $foo[$bar])
klingt gut nur $foo.$bar1.$bar2.dauer funktioniert nicht. Ist {$foo.$bar} nur bis zur 2.Dimension möglich?

würde bedeuten der Wert des variablen Schlüssel $baz im array $foo an vierter Stelle wird ausgegeben und 4 ist ja hier fix.

Vielleicht seh ich hier auch einfach die Lösung nicht. Wär dir dankbar wenn du sie mal postest ;)
 

sangui

Noch nicht viel geschrieben

AW: Multidimensionales Array mit Smarty auslesen

Eigentlich ist das gar nicht mal so schwer mit Smarty. Wenn du folgendes Array in PHP hast, welches du an Smarty übergibst:
PHP:
<?php
$data = array("a" => array("text" => "A"), "b" => array("text" => "B"));
?>
Code:
{foreach name=aussen item=level1 from=$data}
$level1.text <br />
{foreachelse}
Iwas
{/foreach}
Die Ausgabe wäre dann:
Code:
A<br />
B <br />
Wenn du jetzt noch mehr Dimensionen willst, musst du nur noch eine foreach Schleife rein packen und dann auf den Key zugreifen. Das wiederholt sich solange, bis du kein Array mehr erwartest/bekommen kannst. Problematisch wird es natürlich wenn du z.b in der 2ten Dimension verschiedene Indizies hast. Dann solltest du es eventuell doch anders machen.

mfg sangui
 

saila

Moderatorle

AW: Multidimensionales Array mit Smarty auslesen

Hallo,
ich habe folgendes Problem. Ich möchte mir ein in PHP erstelltes Array, welches an Smarty übergeben wird, mit Smarty auslesen lassen. Die "keys" des Arrays werden aus ner DB erstellt und sind somit nicht "fest", sondern können stets verschieden sein. Leider komme ich nicht an meinen Wert, hier mal ein Beispiel:

array
Dier hier fettgedruckten Begriffe sind Variablen dich unterschiedlich sein können und werden mit Hilfe von for-each-Schleifen und arrays ausgelesen.

Um mit Smarty bei multidimensionalen Arrays in die Tiefen zu gehen, geht man so vor:
Also so sollte Smarty bei mir aussehen:

und ich erhalte den Wert 2.

Mein Problem ist das ich die Dimensionen so nicht ansprechen kann da diese aus for-each Schleifen erzeugt werden. So geht es leider nicht:

Ich hoffe ich konnte mein Problem einigermaßen erklären. Ansonsten bitte nochmal melden.
Hat jemand dafür eine Lösung? Hab schon einiges probiert und bin im Internet nicht fündig geworden.

Grüße

Das ganze ist unter dem Punkt "Assoiatives Array"in der Doku beschrieben - inkl. wie du in einem mehrdimensionalen Array die Werte ansprechen kannst. Dazu kommt noch die in der Doku genannte "foreach" und "foreachelse".

Associative arrays
Smarty

Am besten die Dokumentation als pdf downloaden ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben