Hallo,
angenommen ich definiere folgendes Array:
$test[bla]=“hallo“;
$test[blubb]=“welt“;
Das ist schonmal zum einen falsch und zum anderen schlechter Stil. Falsch deswegen, da “ kein Stringbegrenzer in PHP ist, " oder ' dagegen schon. Ferner sollten assoziative Indizes *immer* in Anführungszeichen gesetzt werden, sonst ersetzt Dir PHP irgendwann noch ne Konstante da rein - ferner gibt's ordentlich Meldungen auf einem System mit E_ALL-Fehlermeldungseinstellungen -> korrekt wäre also $text['bla'] = 'hallo'; etc.
Dann kann ich ja $test[bla] über $test[0] und $test[blubb] über $test[1] ansprechen.
Huch? Wie das denn? Wenn Du $test['bla'] = 'hallo'; machst dann ist $test[0] nicht definiert (wenn Du $test[bla] = 'hallo' machst und bla eine Konstante ist, die auf den Wert 0 expandiert, dann schon, aber ich hoffe doch stark, dass Du das nicht meinst...), weswegen $test[0] eine Notice ausspuckt und NULL ergeben wird - aber definitiv *nicht* den Wert von 'hallo' - dito bei $test[1].
Aber wie könnte ich denn dynamisch ausgeben/in erfahrung bringen, das $test[0] auch über $test[bla] angesprochen werden kann?
Das anlegen eines assoziativen Index führt *nicht* dazu, dass ein numerischer Index als Alias darauf angelegt wird. Damit ist auch Deine Problemstellung irgendwie hinfällig. Es gibt einige PHP-Funktionen, die derartige Arrays zurückgeben (Datenbankfunktionen, die sowohl numerische als auch assoziative Indizes für die Rückgabespalten erzeugen, each(), bestimmt noch ein paar andere) - das ist aber ein Zusatz dieser Funktionen, aber kein Standardverhalten von PHP.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup