• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Varialbe Namen in Variable hinterlegen

htphpml

Neues Mitglied
Hallo zusammen,


Bin gerade dabei mein script etwas aufzuräumen und gleichzeitig zu entschlacken.

Ich habe mich schon mit dem Thema "Dynamische Variablennamen" auseinander gesetzt, falls dies überhaupt zu meinem Problem passt.


Hier mal ein bsp.
$ar = array();
$ar[$_POST['Nr']]['timestamp'] = time();
$ar[$_POST['Nr']]['Titel'] = $_POST['Titel'];
etc...
Hier befülle ich das Array, ...

an anderer stelle z.b. eine Abfrage
if ($ar[$_POST['Nr']]['Titel'] != '') ...


Jedes mal muss ich es voll ausschreiben.

Erste Idee...
$timestamp = $ar[$_POST['Nr']]['timestamp']
Funktioniert nicht....
(Jedenfalls nur bei der if Abfrage, da ja so der Inhalt übernommen wird, aber nicht der Name selbst. Beim array, oberen funktioniert dieser weg nicht mehr)

Auch...
$timestamp = ${"ar[" . $_POST['Nr'] . "]['timestamp']″};
führte nicht zum gewünschtem Ergebnis.
Wie wäre es richtig umzusetzen, wenn überhaupt möglich.

Viele Grüße
Paul
 
Werbung:
Irgendwie fehlt hier der Zusammenhang, ich verstehe nicht, warum du die Post-Variablen in ein anderes Array schreibst und nicht einfach weiter mit den Post-Variablen arbeitest?!
 
Werbung:
Verstehe ich immer noch nicht. Wo ist der Unterschied, ob ich $ar['irgendwas']['nochwas'] oder $_POST['irgendwas']['nochwas'] schreibe. Die zweite Variante ist doch sogar übersichtlicher, denn da erkennt man doch immer, wo die Daten herkommen.
 
Also ich verstehe auch nicht wozu das gut sein sollte, und wie schon gesagt es ist sogar unübersichtlicher und du musst sogar mehr schreiben als vorher.

das einzige was du halt höchstens machen könntest wäre

PHP:
$timestamp = time();
$title = $_POST['title'];
etc...

oder versteh ich nun was falsch?
 
Sry, vielleicht schreibe ich auch falsch/nicht verständlich.

Der teil bei mir um das es geht, liest und schreibt eine JSON Datei. Um dies zu bewerkstelligen gehe ich folgendermaßen vor. .

$ar = array();
$ar[$_POST['Nr']]['timestamp'] = time();
$ar[$_POST['Nr']]['Titel'] = $_POST['Titel'];
Usw ..

Um etwas zu schreiben prüfen ich auch an anderen stellen den Inhalt. .
Darum die if abfragen. ..
If ($ar[$_POST['Nr']]['timestamp'] == "test").

Es ist ein mehrdimensionales array, darum können auch die Zeilen auch länger ausfallen. Wie gesagt, bei den IG abfragen würde es ja schon klappen mit...
$Zeit = $ar[$_POST['Nr']]['timestamp']
Und dann einfach nur...
If ($zeit == "test")
Einfach und übersichtlich. Aber es funktioniert beim schreiben vom array nicht.
Also hier...
$ar[$_POST['Nr']]['timestamp'] = time();



Es ist auch ein mehrdimensionales array, darum können die Zeilen auch länger ausfallen. Vor allem falls mehrere Operatoren mit verschiedenen vergleichen in einer if Abfrage eingebaut ist.

Darum dachte ich mir. Überall wo follgende variable zu finden ist, ob nun zum schreiben oder lesen des arrays gebe ich ein alternative variable
Bsp:
$Zeit = '$ar[$_POST['Nr']]['timestamp']'

$ar = array();
$zeit = time(); <- so funktioniert es aber nicht
UND
if($Zeit == "test") <- funktioniert nur ohne die vorran gestellten ' '.

Hoffe ich konnte jetzt mein Vorhaben etwas genauer Schilder .

Viele Grüße
 
Werbung:
Zurück
Oben