Hallo Benni,
streng genommen gibt es in PHP kein mehrdimensionales Feld. Auch der Begriff "assoziativ" ist hinsichtlich des Konzepts von PHP Arrays nicht korrekt, bzw. nicht nötig. Ein PHP Array ist im Prinzip eine HASHMAP, die Schlüsseln Werte zuweist. Wie der Schlüssel aussieht, ist egal. D.h, es kann ein fortlaufender Integerwert genauso sein, wie alphanumerische Werte, Datumsangaben, etc.
Dieses Konzept erlaubt Verschachtelung, und damit kann man verschiedene Dinge simulieren: Felder, Hash-Tabellen, Stacks, etc.
Ein kurzes Beispiel
$t = array();
$t[3] = "testwert;
echo count($t);
ergibt 1 (dem Schlüssel 3 wurde de Wert "testwert" zugewiesen)
t = new Array();
t[3] = "testwert";
alert(t.length);
ergibt 3 (hier wurden die Feldbereiche 0,1, und 2 implizit zum Feld hinzugefügt. Ein Standard-Feld beginnt immer beim numerischen Index 0. 0-2 sind allerdings undefined.)
In Java wäre sowas nicht möglich, dort müsste man die Feldgröße implizt durch initiales Setzen von Werten oder explizit durch die Angabe des Maxwertes festlegen.
Pseudo
int t[] = new int[5];
t[3] = "testwert";
Javas Vectoren verhalten sich wohl etwas ähnlich wie PHP Arrays.
Man sollte dieses Verhalten von PHP hinslichtlich Arrays berücksichtigen. Wie agiert PERL in diese Hinsicht? Auch bei Python gibt es keine Felder im Sinne von C, sondern das Konzept von Listen und Dicts.
Auch wenn man PHP nicht mag, finde ich dieses Konzept trotzdem sehr anwenderfreundlich. Java- oder C-Arrays können u.U. ne Menge Ärger bereiten. Deshalbt greift man im Falle von Java wohl auch oft zu dem Konzept der Vektoren oder der ArrayLists.