String zu mehrdimensionalem Array machen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
beneboy
Mitglied
Beiträge: 2
Registriert: 18.02.2022 09:49

String zu mehrdimensionalem Array machen

Beitrag von beneboy »

Hallo zusammen,

ich hab in der DB Template-Variablen gespeichert, bspw.: slider.item1.headline1 = "Headline1".
Ich verwende Symfony-Framework. Wenn ich einfach "slider.item1.headline1" an das Twig-Template weitergeb, wird das nicht verwendet, weil die Punkte als mehrdimensionales Array (oder verschachteltes Objekt) interpretiert werden (https://symfony.com/doc/current/templat ... -variables).

Ich hab mir jetzt eine Routine gebaut die den String in ein mehrdimensionales Array umwandelt.
Mir gefällt aber das eval() nicht, PHP-Storm mag es auch nicht, wird als Fehler markiert.
Wie könnte man das schöner lösen (ohne eval)?

Hier meine Methode:

Code: Alles auswählen

		protected function convertTemplateVarsFromDatabase($tplvars): array
		{
			$myvar = [];
			foreach ($tplvars as $tv)
			{
				$handle   = preg_replace('/[^a-zA-Z0-9._]/', '_', $tv['handle']);
				$tplsplit = explode('.', $handle);
				
				$mem = "";
				foreach ($tplsplit as $eitem)
				{
					$mem .= "['" . $eitem . "']";
				}
				
				$content = $tv['htmltext'];
				eval('$myvar' . $mem . ' = $content;');
			}
			
			return $myvar;
		}
Vielen Dank schon mal.
Beste Grüße, Beneboy
Verschoben von Support-Forum nach Coding & Technik am 18.02.2022 11:49 durch Dr.Death

beneboy
Mitglied
Beiträge: 2
Registriert: 18.02.2022 09:49

Re: String zu mehrdimensionalem Array machen

Beitrag von beneboy »

Ich hab bei Stackoverflow eine Lösung bekommen. Hier die Antwort, vielleicht hilft es mal jemandem:
https://stackoverflow.com/questions/712 ... onal-array
Antworten

Zurück zu „Coding & Technik“