dedlfix: Falsche Ausgabe aus Array

Beitrag lesen

Hi!

ich lese ein Array mit WHILE aus,

Warum nicht mit foreach? Da brauchst du nur ein Konstrukt und nicht derer drei (while, list, each).

Mache ich vorher eine Ausgabe mit var_dump,  kann ich sehen das dass Array richtig zusammengebaut ist (function ist ebenfalls ein Array welches in der inneren Schleife gelesen wird).

array(1) { [1]=>  array(4) { ["username"]=>  string(6) "Tester" ["id_user"]=>  string(1) "1" ["path"]=>  NULL ["function"]=>  array(3) { [1]=>  string(5) "Admin" [2]=>  string(9) "Moderator" [3]=>  string(7) "Leitung" } } }

Bitte noch vor der Ausgabe ein <pre> ausgeben oder die Ausgabe im Browser-Quelltext betrachten, so kann das doch kein Mensch ordentlich lesen.

while(list($key2, $value2)=each($value['function'])){
echo $value2['function'] . "</ br>";

var_dump() kennst du nun schon. Wende das doch mal auf $value2 an.

Es wird also immer nur der erste Buchstabe des Strings ausgegeben. Habt Ihr dafür eine Erklärung? Ich nicht.

Ja, $value2 enthält einen String. Die []-Syntax greift bei Strings auf einzelne Zeichen zu. Das 'function' wird dazu in eine Zahl umgewandelt, weil man nur über einen nummerischen Wert auf eine Position innerhalb eines String zugreifen kann. (int)'function' ergibt also 0 und damit wird $value2['function'] zu $value2[0], was den ersten Buchstaben ergibt.

Lo!