Lieber Daniel,
$test[bla]=“hallo“;
$test[blubb]=“welt“;
dass dieser Code ganz übel ist, wurde Dir schon gesagt.
PHP unterscheidet (Überraschung!) _nicht_ zwischen assoziativ indizierten und numerisch indizierten Arrays. Für PHP ist das alles dasselbe. Siehe folgendes Beispiel (aus der PHP-Doku):
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
Lediglich die Sortierfunktionen unterscheiden das (scheinbar), denn wenn in einem Array nur numerische Indices stehen, dann kann es erwünscht sein, die Array-Werte neu "durchzunummerieren", sprich die Zuordnung von Index zu Wert neu zu definieren. In unserem obigen Beispiel wäre das allerdings fatal.
Aus ebendiesem Grund verfügt PHP ja auch über diese Vielfalt an Sortierfunktionen für Arrays!
Dann kann ich ja $test[bla] über $test[0] und $test[blubb] über $test[1] ansprechen.
Nein. Wie schon aus dem oben angeführten Codebeispiel ist eine Zuweisung von Index zu Wert eindeutig. Es gibt zum Index [0] keinen Wert, da du diesen Index nicht verwendet hast!
Aber wie könnte ich denn dynamisch ausgeben/in erfahrung bringen, das $test[0] auch über $test[bla] angesprochen werden kann?
Erstens muss es "dass" heißen *SCNR* und zweitens ist dem nicht so.
Am Ende will ich z.B. sowas ausgeben können:
for($i=0;$i<count($test);$i++)
{
echo“$test[$i] kann alternativ über ??? angesprochen werden<br>\n“;
}
Das ist völlig unmöglich, da es nicht mit der Struktur von Arrays in PHP zusammenpasst. Vergiss es!
Wenn Du die verwendeten Indices und die ihnen zugewiesenen Werte in einer Schleife durchgehen möchtest, dann empfiehlt sich folgendes Konstrukt:
// Alle Array-Inhalte (Wertepaare) durchlaufen:
foreach ($mein_array as $index => $wert) {
echo "Aktueller Index: $index\n";
echo "zugewiesener Wert: $wert\n\n";
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.