Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
dynamische Variablennamen für Arrays [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
dynamische Variablennamen für Arrays


 
ap0477
19-05-2006, 13:38 
 
Hallo,

mein kleines Programm speichert einen Text bestimmter Länge in einem Array speichern. Anschließend wird in den beiden verschachtelten while-Scheifen dieses Array zerlegt und in $key-vielen Arrays gespeichert. Um dies zu realisieren wird die Variable $name bei jedem Durchlauf der Schleife neu erzeugt. Wärend des ersten Durchlaufes sollte $name = a0[0] sein. In der nächsten Zeile sollte die dynamisch generierte Arrayvariable $a0[0] erzeugt werden.
Nachdem die beiden while-Schleifen abgearbeit sind sollten die beiden Arrays $a0 und $a1 existieren. Leider meldet PHP das die Variable a0 nicht definiert sei.

Wo liegt denn der Fehler in meinem Skript?

ciao
Andreas

<?php
$key = 2;
$count_sauber = 12;
$text_sauber = array(D,A,S,I,S,T,E,I,N,T,E,X,T);
print_r($text_sauber);
$n = 0;
$m = 0;
$k = 0;

while ($m < $key) {
while ($n < $count_sauber) {
$name = "a".$m."[".$k."]";
$$name = $text_sauber[$n];
$n = $n + $key;
$k++;
}
$m++;
$n = $m;
$k = 0;
}

print_r($a0);
?>

 
wahsaga
19-05-2006, 13:49 
 
Original geschrieben von ap0477
Nachdem die beiden while-Schleifen abgearbeit sind sollten die beiden Arrays $a0 und $a1 existieren.
Gibt es einen wirklich vernünftigen Grund für den Einsatz variablerVariablen - wenn doch eh schon Arrays benutzt werden?

Mir scheint, du möchtest eigentlich $foo[0] und $foo[1] erzeugen.

 
ap0477
19-05-2006, 14:20 
 
Hm,

warum leicht wenn es auch kompliziert geht. Danke für deinen Tip. Ich war so auf diese eine Richtung versteift das ich die einfache Lösung nicht gesehen habe.

danke und ciao
Andreas

 
muh (newbie)
19-05-2006, 15:39 
 
Mit deiner Konstruktion bekommt man eine gewöhnliche Variable namens $a0[0]
anstatt einen array $a0. mit meiner konstruktion bekommt man das von dir zuerst gewünschte, Die Schweife sind nötig:
$name="a".$m;
${$name}[$k] = $text_sauber[$n];

 
ap0477
19-05-2006, 16:56 
 
Auch dir danke für die Antwort.

ciao
Andreas

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:54 Uhr.