Variablennamen verbinden

Daemonic

Mitglied
Hallo,
ich hab ein Problem:
(ich vereinfache das ganze ein mal:)

Also angenommen ich hätte folgende Variablen:
$i=2;
$test2="hallo welt";

Ok. Jetzt will ich das die Variable $temp den Wert von $test2 annimmt.
Aber nicht mit:
$temp = $test2;
sondern irgendwie so:
$temp = eval("$test".$i);

Also das der Variablenname zusammengesetzt wird. Aber der Befehlt eval() den es in JS gibt, gibts nicht in PHP. Habt ihr da ne idee???
 
Also ich weiß nicht was eval bewirkt.. aber:

PHP:
$i=2; 
$test="hallo welt"; 

$temp=$test.$i;

print $temp;


Ausgabe: hallo welt2


edit: hm, bin mir echt nicht sicher was Du meinst :-)
 
geht übrigends mit beliebig vielen strings

$ergebnis = $string1 . $string2 . $string3...

falls du n leerzeichen zwischen beiden werten haben willst kannstes z.b. so machn:

$ergebnis = $string1 . " " . $string2
 
ok, ihr wisst überhaupt nicht was ich meine. Also ich sags mal ander:
ich hab volgendes Script:

$test1="abc";
$test2="def";
$test3="ghi";
$test4="jkl";
$anzahl=4;

for ($i=1;$i<=$anzahl;$i++){
$temp = $test$i;
echo $temp
}

rauskommen soll:
abcdefghijkl

Die Variablen $test1 - $test2 sollen in der for Schleife angesprochen werden. Wenn es ein Array wäre, würde man sie mit $test[$i] ansprechen können. Doch ich kann daraus keinen Array machen, da die Variablen aus einem dynamischen Formular kommen. Also könnt ihr mir jetzt helfen?
 
ich hab das obere net gelesen is ja wohl egal:)

also....

was du brauchst sind arrays!!!!
einen aufruf
PHP:
$variable$i
gibt es net!!!!!

das musst du mit arrays machen:

PHP:
$test[1] = 'abc';
$test[2] = 'def';
$test[3] = 'ghi';
$test[4] = 'jkl';
$test[5] = 'mno';
  //count($array) gibt die länge des arrays zurück hier also 5
for($i=1;$i<=count($test);$i++){
 echo $test[$i];
}

  //arrays kann man auch ander definieren:
$test = array('abc','def','ghi','...');
  //jetzt ist aber wie immer bei arrays der erste index 0!!!
  //also:
for($i=0;$i<count($test);$i++){
  echo $test[$i];
}

es gibt noch viele andere möglichkeiten, aber die sind net so wichtig......

hier mal vorbeischauen...

//hoffe das hat geholfen...

//bad taste
 
ok, wenn es sowas nicht gibt, dann pack ich das problem halt etwas anders an.

Wenn ich im HTML formular mehrere Feld für namen habe. Wie soll ich die dann nennen das ich die in form eines Arrays habe?

Also bis jetzt hatte ich die feldernamen:
name1
name2
name2
usw.

Wenn ich die im HTML Formular jetzt
name[1]
name[2]
name[3]
usw.
nenne, sind das in PHP keine Arrays. Also was soll ich machen???
 
Bad taste hat es eigentlich schon beantwortet.. Du brauchst Arrays.
Wenn Du sagst die Variablen kommen von einem Formular, dann mach das vielleicht so:


PHP:
$test[0]=$test1; 
$test[1]=$test2; 
$test[2]=$test3;
$test[3]=$test4;

Oder wie bad taste meinte:

PHP:
$test = array($test1,$test2,$test3,$test4);

Du weist den jeweiligen Array-Elementen einfach die Formular-Variablen zu.. :)
 
Zuletzt bearbeitet:
genau das hatte ich mir auch überlegt, doch da das html fomular dynamisch ist ist die anzahl der variablen nicht bestimmt.

Im Fomular wählt man in einem pulldown menu die anzahl aus, drück auf ok, und dann erscheinen so viele felder wie ausgewählt wurden.

Also kann man nicht vorhersehen wie viele namen es werden d.h. man müsste wieder ein schleife macht, und das wiederrum geht nicht.

Noch irgendwer eine Idee?
 
Also bei der Übergabe von Variablen mit Namen alla 'name[index]' entsteht wie gesagt tatsächlich ein Array. Zumindest kann ich das auf meinem System beobachten (Win32, Apache 1.3.22, PHP 4.0.6).
 
Zurück