Hi willie,
gilt das im genannten beispiel
$arr[1][4] =& $arr[0][4];
wirklich für beide arrays?ich habe das so (falsch?) verstanden, dass das linke array auf das rechte verweist, umgekehrt nicht.
Nein - das linke Array-Element zeigt auf den selben _Wert_. Stell dir dazu eine Tabelle vor, in der in der linken Spalte die Variablennamen stehen, in der rechten die Werte. Nach z.B.
$a = 1;
$b =& $a;
stehen in der linken Spalte 2 Einträge (a und b), in der rechten nur einer (1) und beide Variablen verweisen auf diesen einen Wert.
was passiert beim löschen des referenzierten arrays?
Beim Löschen mittels unset() entfernst du nur die Werte aus der linken Spalte, also die Variablennamen. Bei o.g. Beispiel ist es also egal, ob du $a oder $b löschst, die jeweils andere Variable zeigt weiterhin auf den Wert 1.
Um auch alle referenzierten Variablen zu löschen, könnte man z.B. den Wert mit null überschreiben Dabei werden zwar die Variablennamen nicht entfernt, zeigen aber alle auf null, d.h., die Variablen werden als nicht definiert angesehen, da isset() bei dem Wert null false zurückgibt.
Gruß,
Andreas.